Exemple #1
0
    def create_user(self, admin_token, user):
        self.__validate_admin_token(admin_token)

        self.validate_and_fetch_user_tenant(user.tenant_id)

        if not isinstance(user, User):
            raise fault.BadRequestFault("Expecting a User")

        if user.name is None or not user.name.strip():
            raise fault.BadRequestFault("Expecting a unique username")

        if api.USER.get_by_name(user.name):
            raise fault.UserConflictFault(
                "A user with that name already exists")

        if api.USER.get_by_email(user.email):
            raise fault.EmailConflictFault(
                "A user with that email already exists")

        duser = models.User()
        duser.name = user.name
        duser.password = user.password
        duser.email = user.email
        duser.enabled = user.enabled
        duser.tenant_id = user.tenant_id
        duser = api.USER.create(duser)
        user.id = duser.id
        return user
Exemple #2
0
    def create_user(self, admin_token, user):
        self.__validate_admin_token(admin_token)

        self.validate_and_fetch_user_tenant(user.tenant_id)

        if not isinstance(user, User):
            raise fault.BadRequestFault("Expecting a User")

        if user.name is None or not user.name.strip():
            raise fault.BadRequestFault("Expecting a unique username")

        if api.USER.get_by_name(user.name):
            raise fault.UserConflictFault(
                "A user with that name already exists")

        if user.email is not None:
            if len(user.email) == 0:
                raise fault.BadRequestFault("Expecting a email")

            if api.USER.get_by_email(user.email):
                raise fault.EmailConflictFault(
                    "A user with that email already exists")

        if user.eppn is not None:
            if len(user.eppn) == 0:
                raise fault.BadRequestFault("Expecting a eppn")

            if api.USER.get_by_eppn(user.eppn):
                raise fault.EppnConflictFault(
                    "A user with that eppn already exists")

        duser = models.User()
        duser.name = user.name
        duser.password = user.password
        duser.email = user.email
        duser.eppn = user.eppn
        duser.enabled = user.enabled
        duser.tenant_id = user.tenant_id
        duser = api.USER.create(duser)
        user.id = duser.id

        # create credentilas
        dcreds = models.Credentials()
        dtenant = api.TENANT.get_user_tenants(user.id)

        if dtenant:
            dcreds.key = dtenant[0].name + ":" + user.name
        else:
            dcreds.key = user.name

        dcreds.user_id = user.id
        dcreds.tenant_id = user.tenant_id
        dcreds.type = "EC2"
        dcreds.secret = user.password
        api.CREDENTIALS.create(dcreds)

        return user
Exemple #3
0
    def update_user(self, admin_token, user_id, user):
        self.__validate_admin_token(admin_token)

        duser = api.USER.get(user_id)

        if not duser:
            raise fault.ItemNotFoundFault("The user could not be found")

        if not isinstance(user, User):
            raise fault.BadRequestFault("Expecting a User")

        if user.email != duser.email and \
                api.USER.get_by_email(user.email) is not None:
            raise fault.EmailConflictFault("Email already exists")

        values = {'email': user.email}
        api.USER.update(user_id, values)
        duser = api.USER.user_get_update(user_id)
        return User(duser.password, duser.id, duser.name, duser.tenant_id,
            duser.email, duser.enabled)