89 # first show permissions defined by the schema |
89 # first show permissions defined by the schema |
90 self.w('<h2>%s</h2>' % _('schema\'s permissions definitions')) |
90 self.w('<h2>%s</h2>' % _('schema\'s permissions definitions')) |
91 self.schema_definition(entity.e_schema) |
91 self.schema_definition(entity.e_schema) |
92 self.w('<h2>%s</h2>' % _('manage security')) |
92 self.w('<h2>%s</h2>' % _('manage security')) |
93 # ownership information |
93 # ownership information |
94 if self._cw.schema.rschema('owned_by').has_perm(self._cw, 'add', |
94 if self._cw.vreg.schema.rschema('owned_by').has_perm(self._cw, 'add', |
95 fromeid=entity.eid): |
95 fromeid=entity.eid): |
96 self.owned_by_edit_form(entity) |
96 self.owned_by_edit_form(entity) |
97 else: |
97 else: |
98 self.owned_by_information(entity) |
98 self.owned_by_information(entity) |
99 # cwpermissions |
99 # cwpermissions |
100 if 'require_permission' in entity.e_schema.subject_relations(): |
100 if 'require_permission' in entity.e_schema.subject_relations(): |
101 w('<h3>%s</h3>' % _('permissions for this entity')) |
101 w('<h3>%s</h3>' % _('permissions for this entity')) |
102 reqpermschema = self._cw.schema.rschema('require_permission') |
102 reqpermschema = self._cw.vreg.schema.rschema('require_permission') |
103 self.require_permission_information(entity, reqpermschema) |
103 self.require_permission_information(entity, reqpermschema) |
104 if reqpermschema.has_perm(self._cw, 'add', fromeid=entity.eid): |
104 if reqpermschema.has_perm(self._cw, 'add', fromeid=entity.eid): |
105 self.require_permission_edit_form(entity) |
105 self.require_permission_edit_form(entity) |
106 |
106 |
107 def owned_by_edit_form(self, entity): |
107 def owned_by_edit_form(self, entity): |
111 form_renderer_id='base', submitmsg=msg, |
111 form_renderer_id='base', submitmsg=msg, |
112 form_buttons=[wdgs.SubmitButton()], |
112 form_buttons=[wdgs.SubmitButton()], |
113 domid='ownership%s' % entity.eid, |
113 domid='ownership%s' % entity.eid, |
114 __redirectvid='security', |
114 __redirectvid='security', |
115 __redirectpath=entity.rest_path()) |
115 __redirectpath=entity.rest_path()) |
116 field = guess_field(entity.e_schema, self._cw.schema.rschema('owned_by')) |
116 field = guess_field(entity.e_schema, self._cw.vreg.schema.rschema('owned_by')) |
117 form.append_field(field) |
117 form.append_field(field) |
118 self.w(form.render(rendervalues=dict(display_progress_div=False))) |
118 self.w(form.render(rendervalues=dict(display_progress_div=False))) |
119 |
119 |
120 def owned_by_information(self, entity): |
120 def owned_by_information(self, entity): |
121 ownersrset = entity.related('owned_by') |
121 ownersrset = entity.related('owned_by') |
171 form.form_add_hidden('require_permission', entity.eid, role='object', |
171 form.form_add_hidden('require_permission', entity.eid, role='object', |
172 eidparam=True) |
172 eidparam=True) |
173 permnames = getattr(entity, '__permissions__', None) |
173 permnames = getattr(entity, '__permissions__', None) |
174 cwpermschema = newperm.e_schema |
174 cwpermschema = newperm.e_schema |
175 if permnames is not None: |
175 if permnames is not None: |
176 field = guess_field(cwpermschema, self._cw.schema.rschema('name'), |
176 field = guess_field(cwpermschema, self._cw.vreg.schema.rschema('name'), |
177 widget=wdgs.Select({'size': 1}), |
177 widget=wdgs.Select({'size': 1}), |
178 choices=permnames) |
178 choices=permnames) |
179 else: |
179 else: |
180 field = guess_field(cwpermschema, self._cw.schema.rschema('name')) |
180 field = guess_field(cwpermschema, self._cw.vreg.schema.rschema('name')) |
181 form.append_field(field) |
181 form.append_field(field) |
182 field = guess_field(cwpermschema, self._cw.schema.rschema('label')) |
182 field = guess_field(cwpermschema, self._cw.vreg.schema.rschema('label')) |
183 form.append_field(field) |
183 form.append_field(field) |
184 field = guess_field(cwpermschema, self._cw.schema.rschema('require_group')) |
184 field = guess_field(cwpermschema, self._cw.vreg.schema.rschema('require_group')) |
185 form.append_field(field) |
185 form.append_field(field) |
186 renderer = self._cw.vreg['formrenderers'].select( |
186 renderer = self._cw.vreg['formrenderers'].select( |
187 'htable', self._cw, rset=None, display_progress_div=False) |
187 'htable', self._cw, rset=None, display_progress_div=False) |
188 self.w(form.render(renderer=renderer)) |
188 self.w(form.render(renderer=renderer)) |
189 |
189 |