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