comparison rhodecode/model/forms.py @ 1015:65129c332d37 beta

#56 added ajax removal of users groups, fixed permission edition templates by regular non admin users found bugfixes in forms for users groups
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 09 Feb 2011 17:41:27 +0100
parents 6fdc3ff65fce
children 4f834b0abcd3
comparison
equal deleted inserted replaced
1014:6fdc3ff65fce 1015:65129c332d37
244 def to_python(self, value, state): 244 def to_python(self, value, state):
245 perms_update = [] 245 perms_update = []
246 perms_new = [] 246 perms_new = []
247 #build a list of permission to update and new permission to create 247 #build a list of permission to update and new permission to create
248 for k, v in value.items(): 248 for k, v in value.items():
249 if k.startswith('perm_'): 249 #means new added member to permissions
250 if k.startswith('perm_new_member'): 250 if k.startswith('perm_new_member'):
251 #means new added member to permissions 251 new_perm = value.get('perm_new_member', False)
252 new_perm = value.get('perm_new_member', False) 252 new_member = value.get('perm_new_member_name', False)
253 new_member = value.get('perm_new_member_name', False) 253 new_type = value.get('perm_new_member_type')
254 new_type = value.get('perm_new_member_type') 254
255 255 if new_member and new_perm:
256 if new_member and new_perm: 256 if (new_member, new_perm, new_type) not in perms_new:
257 if (new_member, new_perm, new_type) not in perms_new: 257 perms_new.append((new_member, new_perm, new_type))
258 perms_new.append((new_member, new_perm, new_type)) 258 elif k.startswith('u_perm_') or k.startswith('g_perm_'):
259 else: 259 member = k[7:]
260 usr = k[5:] 260 t = {'u':'user',
261 t = 'user' 261 'g':'users_group'}[k[0]]
262 if usr == 'default': 262 if member == 'default':
263 if value['private']: 263 if value['private']:
264 #set none for default when updating to private repo 264 #set none for default when updating to private repo
265 v = 'repository.none' 265 v = 'repository.none'
266 perms_update.append((usr, v, t)) 266 perms_update.append((member, v, t))
267
267 value['perms_updates'] = perms_update 268 value['perms_updates'] = perms_update
268 value['perms_new'] = perms_new 269 value['perms_new'] = perms_new
269 270
270 #update permissions 271 #update permissions
271 sa = meta.Session 272 sa = meta.Session
350 class AttrLoginValidator(formencode.validators.FancyValidator): 351 class AttrLoginValidator(formencode.validators.FancyValidator):
351 352
352 def to_python(self, value, state): 353 def to_python(self, value, state):
353 354
354 if not value or not isinstance(value, (str, unicode)): 355 if not value or not isinstance(value, (str, unicode)):
355 raise formencode.Invalid(_("The LDAP Login attribute of the CN must be specified " 356 raise formencode.Invalid(_("The LDAP Login attribute of the CN "
356 "- this is the name of the attribute that is equivalent to 'username'"), 357 "must be specified - this is the name "
358 "of the attribute that is equivalent "
359 "to 'username'"),
357 value, state) 360 value, state)
358 361
359 return value 362 return value
360 363
361 #=============================================================================== 364 #===============================================================================