def create_group(permissions=None, group_name=None, display_name=None, owner=None, ldap=False, root_password=None): # tg_group.group_name column is VARCHAR(16) if group_name is None: group_name = unique_name(u'group%s') assert len(group_name) <= 16 group = Group.lazy_create(group_name=group_name) group.root_password = root_password if display_name is None: group.display_name = u'Group %s' % group_name else: group.display_name = display_name group.ldap = ldap if ldap: assert owner is None, 'LDAP groups cannot have owners' if owner: add_owner_to_group(owner, group) else: group_owner = create_user(user_name=unique_name(u'group_owner_%s')) add_owner_to_group(group_owner, group) if permissions: group.permissions.extend( Permission.by_name(name) for name in permissions) return group
def create_group(permissions=None, group_name=None, display_name=None, owner=None, ldap=False, root_password=None): # tg_group.group_name column is VARCHAR(16) if group_name is None: group_name = unique_name(u'group%s') assert len(group_name) <= 16 group = Group.lazy_create(group_name=group_name) group.root_password = root_password if display_name is None: group.display_name = u'Group %s' % group_name else: group.display_name = display_name group.ldap = ldap if ldap: assert owner is None, 'LDAP groups cannot have owners' if owner: add_owner_to_group(owner, group) else: group_owner = create_user(user_name=unique_name(u'group_owner_%s')) add_owner_to_group(group_owner, group) if permissions: group.permissions.extend(Permission.by_name(name) for name in permissions) return group
def create_group(permissions=None, group_name=None, display_name=None, owner=None, membership_type=GroupMembershipType.normal, root_password=None): if group_name is None: group_name = unique_name(u'group%s') group = Group.lazy_create(group_name=group_name) group.root_password = root_password if display_name is None: group.display_name = u'Group %s display name' % group_name else: group.display_name = display_name group.membership_type = membership_type if group.membership_type == GroupMembershipType.ldap: assert owner is None, 'LDAP groups cannot have owners' if not owner: owner = create_user(user_name=unique_name(u'group_owner_%s')) group.add_member(owner, is_owner=True, service=u'testdata') if permissions: group.permissions.extend( Permission.by_name(name) for name in permissions) return group
def create_group(): """ Creates a new user group in Beaker. The request must be :mimetype:`application/json`. :jsonparam string group_name: Symbolic name for the group. :jsonparam string display_name: Human-friendly display name for the group. :jsonparam string description: Description of the group. :jsonparam string root_password: Optional root password for group jobs. If this is not set, group jobs will use the root password preferences of the job submitter. :jsonparam string membership_type: Specifies how group membership is populated. Possible values are: * normal: Group is initially empty, members are explicitly added and removed by group owner. * ldap: Membership is populated from the LDAP group with the same group name. * inverted: Group contains all Beaker users *except* users who have been explicitly excluded by the group owner. :status 201: The group was successfully created. """ user = identity.current.user data = read_json_request(request) if 'group_name' not in data: raise BadRequest400('Missing group_name key') if 'display_name' not in data: raise BadRequest400('Missing display_name key') # for backwards compatibility if data.pop('ldap', False): data['membership_type'] = 'ldap' try: Group.by_name(data['group_name']) except NoResultFound: pass else: raise Conflict409("Group '%s' already exists" % data['group_name']) with convert_internal_errors(): group = Group.lazy_create(group_name=data['group_name']) group.display_name = data['display_name'] group.description = data.get('description') group.root_password = data.get('root_password') session.add(group) group.record_activity(user=user, service=u'HTTP', field=u'Group', action=u'Created') if data.get('membership_type'): group.membership_type = GroupMembershipType.from_string( data['membership_type']) if group.membership_type == GroupMembershipType.ldap: group.refresh_ldap_members() else: # LDAP groups don't have any owners group.add_member(user, is_owner=True, agent=identity.current.user) response = jsonify(group.__json__()) response.status_code = 201 response.headers.add('Location', absolute_url(group.href)) return response
def create_group(permissions=None, group_name=None, display_name=None, owner=None, membership_type=GroupMembershipType.normal, root_password=None): if group_name is None: group_name = unique_name(u'group%s') group = Group.lazy_create(group_name=group_name) group.root_password = root_password if display_name is None: group.display_name = u'Group %s display name' % group_name else: group.display_name = display_name group.membership_type = membership_type if group.membership_type == GroupMembershipType.ldap: assert owner is None, 'LDAP groups cannot have owners' if not owner: owner = create_user(user_name=unique_name(u'group_owner_%s')) group.add_member(owner, is_owner=True, service=u'testdata') if permissions: group.permissions.extend(Permission.by_name(name) for name in permissions) return group