Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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