Mercurial > kallithea
comparison rhodecode/controllers/admin/permissions.py @ 2709:d2d35cf2b351 beta
RhodeCode now has a option to explicitly set forking permissions. ref #508
- changed the way permissons on users groups behave. Now explicit set on user
is more important than permission set on users group
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 10 Aug 2012 03:09:36 +0200 |
parents | 91c442a489bb |
children | 63e58ef80ef1 d3200c58764e |
comparison
equal
deleted
inserted
replaced
2708:9bce679a3f49 | 2709:d2d35cf2b351 |
---|---|
69 _('allowed with automatic account activation')), ] | 69 _('allowed with automatic account activation')), ] |
70 | 70 |
71 self.create_choices = [('hg.create.none', _('Disabled')), | 71 self.create_choices = [('hg.create.none', _('Disabled')), |
72 ('hg.create.repository', _('Enabled'))] | 72 ('hg.create.repository', _('Enabled'))] |
73 | 73 |
74 self.fork_choices = [('hg.fork.none', _('Disabled')), | |
75 ('hg.fork.repository', _('Enabled'))] | |
76 | |
77 # set the global template variables | |
78 c.perms_choices = self.perms_choices | |
79 c.register_choices = self.register_choices | |
80 c.create_choices = self.create_choices | |
81 c.fork_choices = self.fork_choices | |
82 | |
74 def index(self, format='html'): | 83 def index(self, format='html'): |
75 """GET /permissions: All items in the collection""" | 84 """GET /permissions: All items in the collection""" |
76 # url('permissions') | 85 # url('permissions') |
77 | 86 |
78 def create(self): | 87 def create(self): |
94 | 103 |
95 permission_model = PermissionModel() | 104 permission_model = PermissionModel() |
96 | 105 |
97 _form = DefaultPermissionsForm([x[0] for x in self.perms_choices], | 106 _form = DefaultPermissionsForm([x[0] for x in self.perms_choices], |
98 [x[0] for x in self.register_choices], | 107 [x[0] for x in self.register_choices], |
99 [x[0] for x in self.create_choices])() | 108 [x[0] for x in self.create_choices], |
109 [x[0] for x in self.fork_choices])() | |
100 | 110 |
101 try: | 111 try: |
102 form_result = _form.to_python(dict(request.POST)) | 112 form_result = _form.to_python(dict(request.POST)) |
103 form_result.update({'perm_user_name': id}) | 113 form_result.update({'perm_user_name': id}) |
104 permission_model.update(form_result) | 114 permission_model.update(form_result) |
105 Session().commit() | 115 Session().commit() |
106 h.flash(_('Default permissions updated successfully'), | 116 h.flash(_('Default permissions updated successfully'), |
107 category='success') | 117 category='success') |
108 | 118 |
109 except formencode.Invalid, errors: | 119 except formencode.Invalid, errors: |
110 c.perms_choices = self.perms_choices | |
111 c.register_choices = self.register_choices | |
112 c.create_choices = self.create_choices | |
113 defaults = errors.value | 120 defaults = errors.value |
114 | 121 |
115 return htmlfill.render( | 122 return htmlfill.render( |
116 render('admin/permissions/permissions.html'), | 123 render('admin/permissions/permissions.html'), |
117 defaults=defaults, | 124 defaults=defaults, |
139 # url('permission', id=ID) | 146 # url('permission', id=ID) |
140 | 147 |
141 def edit(self, id, format='html'): | 148 def edit(self, id, format='html'): |
142 """GET /permissions/id/edit: Form to edit an existing item""" | 149 """GET /permissions/id/edit: Form to edit an existing item""" |
143 #url('edit_permission', id=ID) | 150 #url('edit_permission', id=ID) |
144 c.perms_choices = self.perms_choices | |
145 c.register_choices = self.register_choices | |
146 c.create_choices = self.create_choices | |
147 | 151 |
152 #this form can only edit default user permissions | |
148 if id == 'default': | 153 if id == 'default': |
149 default_user = User.get_by_username('default') | 154 default_user = User.get_by_username('default') |
150 defaults = {'_method': 'put', | 155 defaults = {'_method': 'put', |
151 'anonymous': default_user.active} | 156 'anonymous': default_user.active} |
152 | 157 |
158 defaults['default_register'] = p.permission.permission_name | 163 defaults['default_register'] = p.permission.permission_name |
159 | 164 |
160 if p.permission.permission_name.startswith('hg.create.'): | 165 if p.permission.permission_name.startswith('hg.create.'): |
161 defaults['default_create'] = p.permission.permission_name | 166 defaults['default_create'] = p.permission.permission_name |
162 | 167 |
168 if p.permission.permission_name.startswith('hg.fork.'): | |
169 defaults['default_fork'] = p.permission.permission_name | |
170 | |
163 return htmlfill.render( | 171 return htmlfill.render( |
164 render('admin/permissions/permissions.html'), | 172 render('admin/permissions/permissions.html'), |
165 defaults=defaults, | 173 defaults=defaults, |
166 encoding="UTF-8", | 174 encoding="UTF-8", |
167 force_defaults=True,) | 175 force_defaults=True, |
176 ) | |
168 else: | 177 else: |
169 return redirect(url('admin_home')) | 178 return redirect(url('admin_home')) |