def handle_profile_group(event): request = event.request # session = request.registry.getUtility(ISUSession) # session.commit() if has_permission('group:admin', request.context, request): mgr = UserGroupManager(request) group_pk = event.values.get('group', None) if group_pk: group = mgr.get_by_pk(group_pk) if not group in event.user.groups: event.user.groups.append(group) else: event.user.groups.pop()
def test_get_by_pk(self): from pyramid_signup.models import UserGroup from pyramid_signup.models import User from pyramid_signup.managers import UserGroupManager group = UserGroup('admin', 'group for admins') group2 = UserGroup('employees', 'group for employees') self.session.add(group) self.session.add(group2) self.session.commit() request = testing.DummyRequest() mgr = UserGroupManager(request) group = mgr.get_by_pk(2) assert group.name == 'employees'
def test_get_all(self): from pyramid_signup.models import UserGroup from pyramid_signup.models import User from pyramid_signup.managers import UserGroupManager user = User(username='******', password='******') self.session.add(user) group = UserGroup('admin', 'group for admins') group.users.append(user) self.session.add(group) self.session.commit() request = testing.DummyRequest() mgr = UserGroupManager(request) groups = mgr.get_all() assert len(groups) == 1
def choices_widget(node, kw): request = kw.get('request') if request.context: is_admin = has_permission('group:admin', request.context, request) mgr = UserGroupManager(request) groups = mgr.get_all() if is_admin: choices = [ ('', '- None -'), ] for group in groups: choices.append((str(group.pk), group.name)) return deform.widget.SelectWidget(values=choices) return deform.widget.HiddenWidget()