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 = |
|
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