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'))