##// END OF EJS Templates
added logic for changin defualt permissions, and option to overwrite all defualt permissions on each repository...
marcink -
r418:63c697d1 default
parent child Browse files
Show More
@@ -97,6 +97,7 b' class PermissionsController(BaseControll'
97
97
98 try:
98 try:
99 form_result = _form.to_python(dict(request.POST))
99 form_result = _form.to_python(dict(request.POST))
100 form_result.update({'perm_user_name':id})
100 permission_model.update(form_result)
101 permission_model.update(form_result)
101 h.flash(_('Default permissions updated succesfully'),
102 h.flash(_('Default permissions updated succesfully'),
102 category='success')
103 category='success')
@@ -67,8 +67,9 b' class LoginController(BaseController):'
67 user_model = UserModel()
67 user_model = UserModel()
68 c.auto_active = False
68 c.auto_active = False
69 for perm in user_model.get_default().user_perms:
69 for perm in user_model.get_default().user_perms:
70 print perm.permission.permission_name
70 if perm.permission.permission_name == 'hg.register.auto_activate':
71 if perm.permission.permission_name == 'hg.register.auto_activate':
71 c.auto_active = False
72 c.auto_active = True
72 break
73 break
73
74
74 if request.POST:
75 if request.POST:
@@ -124,6 +124,8 b' def fill_data(user):'
124 else:
124 else:
125 user.is_authenticated = False
125 user.is_authenticated = False
126 meta.Session.remove()
126 meta.Session.remove()
127 from pprint import pprint
128 pprint(user.permissions)
127 return user
129 return user
128
130
129 def fill_perms(user):
131 def fill_perms(user):
@@ -164,10 +166,7 b' def fill_perms(user):'
164 #default global
166 #default global
165 for perm in default_perms:
167 for perm in default_perms:
166 user.permissions['global'].add(perm.UserToPerm.permission.permission_name)
168 user.permissions['global'].add(perm.UserToPerm.permission.permission_name)
167
169
168 # user.permissions['global'].add('hg.create.repository')
169 # user.permissions['global'].add('hg.register')
170
171 #default repositories
170 #default repositories
172 for perm in default_perms:
171 for perm in default_perms:
173 if perm.Repository.private and not perm.Repository.user_id == user.user_id:
172 if perm.Repository.private and not perm.Repository.user_id == user.user_id:
@@ -332,6 +332,7 b' def DefaultPermissionsForm(perms_choices'
332 class _DefaultPermissionsForm(formencode.Schema):
332 class _DefaultPermissionsForm(formencode.Schema):
333 allow_extra_fields = True
333 allow_extra_fields = True
334 filter_extra_fields = True
334 filter_extra_fields = True
335 overwrite_default = OneOf(['true', 'false'], if_missing='false')
335 default_perm = OneOf(perms_choices)
336 default_perm = OneOf(perms_choices)
336 default_register = OneOf(register_choices)
337 default_register = OneOf(register_choices)
337 default_create = OneOf(create_choices)
338 default_create = OneOf(create_choices)
@@ -24,9 +24,10 b' Model for permissions'
24 """
24 """
25
25
26 from pylons.i18n.translation import _
26 from pylons.i18n.translation import _
27 from pylons_app.model.db import User, Permission
27 from pylons_app.model.db import User, Permission, UserToPerm, RepoToPerm
28 from pylons_app.model.meta import Session
28 from pylons_app.model.meta import Session
29 import logging
29 import logging
30 import traceback
30 log = logging.getLogger(__name__)
31 log = logging.getLogger(__name__)
31
32
32
33
@@ -47,5 +48,41 b' class PermissionModel(object):'
47
48
48
49
49 def update(self, form_result):
50 def update(self, form_result):
50 print form_result
51 perm_user = self.sa.query(User)\
51 pass
52 .filter(User.username == form_result['perm_user_name']).scalar()
53 u2p = self.sa.query(UserToPerm).filter(UserToPerm.user == perm_user).all()
54 if len(u2p) != 3:
55 raise Exception('There is more than 3 defined \
56 permissions for defualt user. This should not happen please verify\
57 your database')
58
59 try:
60 #stage 1 change defaults
61 for p in u2p:
62 if p.permission.permission_name.startswith('repository.'):
63 p.permission = self.get_permission_by_name(form_result['default_perm'])
64 self.sa.add(p)
65
66 if p.permission.permission_name.startswith('hg.register.'):
67 p.permission = self.get_permission_by_name(form_result['default_register'])
68 self.sa.add(p)
69
70 if p.permission.permission_name.startswith('hg.create.'):
71 p.permission = self.get_permission_by_name(form_result['default_create'])
72 self.sa.add(p)
73 #stage 2 update all default permissions for repos if checked
74 if form_result['overwrite_default'] == 'true':
75 for r2p in self.sa.query(RepoToPerm).filter(RepoToPerm.user == perm_user).all():
76 r2p.permission = self.get_permission_by_name(form_result['default_perm'])
77 self.sa.add(r2p)
78
79 self.sa.commit()
80 except:
81 log.error(traceback.format_exc())
82 self.sa.rollback()
83 raise
84
85
86
87
88
@@ -33,7 +33,13 b''
33 </div>
33 </div>
34 <div class="select">
34 <div class="select">
35 ${h.select('default_perm','',c.perms_choices)}
35 ${h.select('default_perm','',c.perms_choices)}
36 </div>
36
37 ${h.checkbox('overwrite_default','true')}
38 <label for="overwrite_default">
39 <span class="tooltip"
40 tooltip_title="${h.tooltip(_('All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost'))}">
41 ${_('overwrite existing settings')}</span> </label>
42 </div>
37 </div>
43 </div>
38 <div class="field">
44 <div class="field">
39 <div class="label">
45 <div class="label">
General Comments 0
You need to be logged in to leave comments. Login now