コード例 #1
0
 def from_csv(cls, user, data, log):
     """
     Import data from CSV file into user.groups
     """
     if 'group' in data and data['group']:
         try:
             group = Group.by_name(data['group'])
         except InvalidRequestError:
             group = Group(group_name=data['group'],
                           display_name=data['group'])
             session.add(group)
         deleted = False
         if 'deleted' in data:
             deleted = smart_bool(data['deleted'])
         if deleted:
             if group in user.groups:
                 group.remove_member(user,
                                     service=u'CSV',
                                     agent=identity.current.user)
         else:
             if group not in user.groups:
                 group.add_member(user,
                                  service=u'CSV',
                                  agent=identity.current.user)
     else:
         log.append("%s: group can't be empty!" % user)
         return False
     return True
コード例 #2
0
 def from_csv(cls,user,data,log):
     """
     Import data from CSV file into user.groups
     """
     if 'group' in data and data['group']:
         try:
             group = Group.by_name(data['group'])
         except InvalidRequestError:
             group = Group(group_name=data['group'],
                           display_name=data['group'])
             session.add(group)
         deleted = False
         if 'deleted' in data:
             deleted = smart_bool(data['deleted'])
         if deleted:
             if group in user.groups:
                 group.remove_member(user, service=u'CSV',
                         agent=identity.current.user)
         else:
             if group not in user.groups:
                 group.add_member(user, service=u'CSV',
                         agent=identity.current.user)
     else:
         log.append("%s: group can't be empty!" % user)
         return False
     return True
コード例 #3
0
ファイル: group.py プロジェクト: joyxu/beaker
    def create(self, kw):
        """
        Creates a new group.

        The *kw* argument must be an XML-RPC structure (dict)
        specifying the following keys:

            'group_name'
                 Group name (maximum 16 characters)
            'display_name'
                 Group display name
            'description'
                 Group description
            'ldap'
                 Populate users from LDAP (True/False)

        Returns a message whether the group was successfully created or
        raises an exception on failure.

        """
        display_name = kw.get('display_name')
        group_name = kw.get('group_name')
        description = kw.get('description')
        ldap = kw.get('ldap')
        password = kw.get('root_password')

        if ldap and not identity.current.user.is_admin():
            raise BX(_(u'Only admins can create LDAP groups'))
        if ldap and not config.get("identity.ldap.enabled", False):
            raise BX(_(u'LDAP is not enabled'))
        try:
            group = Group.by_name(group_name)
        except NoResultFound:
            group = Group()
            session.add(group)
            group.record_activity(user=identity.current.user,
                                  service=u'XMLRPC',
                                  field=u'Group',
                                  action=u'Created')
            group.display_name = display_name
            group.group_name = group_name
            group.description = description
            group.root_password = password
            if ldap:
                group.membership_type = GroupMembershipType.ldap
                group.refresh_ldap_members()
            else:
                group.add_member(identity.current.user,
                                 is_owner=True,
                                 service=u'XMLRPC',
                                 agent=identity.current.user)
            return 'Group created: %s.' % group_name
        else:
            raise BX(_(u'Group already exists: %s.' % group_name))
コード例 #4
0
    def create(self, kw):
        """
        Creates a new group.

        The *kw* argument must be an XML-RPC structure (dict)
        specifying the following keys:

            'group_name'
                 Group name (maximum 16 characters)
            'display_name'
                 Group display name
            'description'
                 Group description
            'ldap'
                 Populate users from LDAP (True/False)

        Returns a message whether the group was successfully created or
        raises an exception on failure.

        """
        display_name = kw.get('display_name')
        group_name = kw.get('group_name')
        description = kw.get('description')
        ldap = kw.get('ldap')
        password = kw.get('root_password')

        if ldap and not identity.current.user.is_admin():
            raise BX(_(u'Only admins can create LDAP groups'))
        try:
            group = Group.by_name(group_name)
        except NoResultFound:
            group = Group()
            session.add(group)
            group.record_activity(user=identity.current.user, service=u'XMLRPC',
                    field=u'Group', action=u'Created')
            group.display_name = display_name
            group.group_name = group_name
            group.description = description
            group.root_password = password
            if ldap:
                group.membership_type = GroupMembershipType.ldap
                group.refresh_ldap_members()
            else:
                group.add_member(identity.current.user, is_owner=True,
                        service=u'XMLRPC', agent=identity.current.user)
            return 'Group created: %s.' % group_name
        else:
            raise BX(_(u'Group already exists: %s.' % group_name))
コード例 #5
0
 def test_refresh_ldap_group_membership(self):
     with session.begin():
         group = Group(group_name=u'alp',
                 display_name=u'Australian Labor Party',
                 membership_type=GroupMembershipType.ldap)
         old_member = data_setup.create_user(user_name=u'krudd')
         group.add_member(old_member)
     run_command('refresh_ldap.py', 'beaker-refresh-ldap')
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
     # second time is a no-op
     run_command('refresh_ldap.py', 'beaker-refresh-ldap')
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
コード例 #6
0
 def test_refresh_ldap_group_membership(self):
     with session.begin():
         group = Group(group_name=u'alp',
                       display_name=u'Australian Labor Party',
                       membership_type=GroupMembershipType.ldap)
         old_member = data_setup.create_user(user_name=u'krudd')
         group.add_member(old_member)
     run_command('refresh_ldap.py', 'beaker-refresh-ldap')
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
     # second time is a no-op
     run_command('refresh_ldap.py', 'beaker-refresh-ldap')
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
コード例 #7
0
 def test_refresh_ldap_group_membership(self):
     with session.begin():
         group = Group(group_name=u'alp',
                       display_name=u'Australian Labor Party',
                       membership_type=GroupMembershipType.ldap)
         old_member = data_setup.create_user(user_name=u'krudd')
         group.add_member(old_member)
     from bkr.server.tools.refresh_ldap import refresh_ldap
     refresh_ldap()
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
     # second time is a no-op
     refresh_ldap()
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
コード例 #8
0
 def test_refresh_ldap_group_membership(self):
     with session.begin():
         group = Group(group_name=u'alp',
                 display_name=u'Australian Labor Party',
                 membership_type=GroupMembershipType.ldap)
         old_member = data_setup.create_user(user_name=u'krudd')
         group.add_member(old_member)
     from bkr.server.tools.refresh_ldap import refresh_ldap
     refresh_ldap()
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])
     # second time is a no-op
     refresh_ldap()
     with session.begin():
         session.expire_all()
         self.assertEquals(group.users, [User.by_user_name(u'jgillard')])