Beispiel #1
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()
        is_idp_login = False

        if 'is_idp' in adict and adict['is_idp']:
            is_idp_login = True

        if 'email' not in adict:
            invalid_req.add_error('email', 'Email is mandatory')
        elif 'username' not in adict and not is_idp_login:
            adict['username'] = adict['email'].split('@')[0]

        if not is_idp_login:
            if 'password' not in adict:
                invalid_req.add_error('password', 'Password is mandatory')
            if 'confirm_password' not in adict:
                invalid_req.add_error('confirm_password',
                                      'Confirm password is mandatory')
            else:
                if adict['password'] != adict['confirm_password']:
                    invalid_req.add_error(
                        'confirm_password',
                        'Password and Confirm password must be same')
                else:
                    del adict['confirm_password']

        # Set the update datetime
        adict['updated_at'] = datetime.datetime.utcnow()

        if invalid_req.has_errors:
            return invalid_req

        return CreateAccountRequestObject(entity_cls, adict)
Beispiel #2
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()

        data = adict['data']

        if 'token' not in adict:
            invalid_req.add_error('token', 'Token is mandatory')
        new_password = data.get('new_password')
        if new_password is None:
            invalid_req.add_error('new_password', 'New password is mandatory')
        confirm_password = data.get('confirm_password')
        if confirm_password is None:
            invalid_req.add_error('confirm_password',
                                  'Confirm password is mandatory')

        if new_password and confirm_password and \
                new_password != confirm_password:
            invalid_req.add_error(
                'new_password',
                'New password and Confirm password are not same')

        if invalid_req.has_errors:
            return invalid_req

        token = adict['token']

        return ResetPasswordRequestObject(entity_cls, token, adict['data'])
Beispiel #3
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()
        if 'email' not in adict:
            invalid_req.add_error('email', 'Email is mandatory')

        if invalid_req.has_errors:
            return invalid_req

        return SendResetPasswordEmailRequestObject(entity_cls, adict['email'])
Beispiel #4
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()

        if 'account' not in adict:
            invalid_req.add_error('account', 'Account object is mandatory')

        if invalid_req.has_errors:
            return invalid_req

        return LogoutRequestObject(entity_cls, adict['account'])
Beispiel #5
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()

        if 'token' not in adict:
            invalid_req.add_error('token', 'Token is mandatory')

        if invalid_req.has_errors:
            return invalid_req

        token = adict['token']

        return VerifyTokenRequestObject(entity_cls, token)
Beispiel #6
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()

        # Set the update datetime
        adict['data']['updated_at'] = datetime.datetime.utcnow()

        if invalid_req.has_errors:
            return invalid_req

        return super().from_dict(entity_cls, adict)
Beispiel #7
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()

        if 'auth_scheme' not in adict:
            invalid_req.add_error('auth_scheme',
                                  'Authentication scheme is mandatory')
        elif adict['auth_scheme'].lower() != 'basic':
            invalid_req.add_error('auth_scheme',
                                  'Basic Backend supports only Basic Scheme')

        if 'credentials' not in adict:
            invalid_req.add_error('credentials', 'Credentials is mandatory')

        if invalid_req.has_errors:
            return invalid_req

        return AuthenticationRequestObject(entity_cls, adict['credentials'])
Beispiel #8
0
    def from_dict(cls, adict):
        invalid_req = InvalidRequestObject()

        if 'identifier' not in adict:
            invalid_req.add_error('identifier', 'identifier is mandatory')

        if 'mfa_otp' not in adict:
            invalid_req.add_error('mfa_otp', 'mfa_otp is mandatory')

        if invalid_req.has_errors():
            return invalid_req

        identifier = adict['identifier']
        mfa_otp = adict['mfa_otp']

        return VerifyMfaOtpRequestObject(identifier, mfa_otp)
Beispiel #9
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()
        username_or_email = password = None

        if 'username_or_email' not in adict:
            invalid_req.add_error('username_or_email',
                                  'Username or Email is mandatory')
        else:
            username_or_email = adict['username_or_email']

        if 'password' not in adict:
            invalid_req.add_error('password', 'Password is mandatory')
        else:
            password = adict['password']

        if invalid_req.has_errors:
            return invalid_req

        return LoginRequestObject(entity_cls, username_or_email, password)
Beispiel #10
0
    def from_dict(cls, entity_cls, adict):
        invalid_req = InvalidRequestObject()
        data = adict['data']

        if 'identifier' not in adict:
            invalid_req.add_error('identifier', 'ID is mandatory')
        if 'current_password' not in data:
            invalid_req.add_error('current_password',
                                  'Current password is mandatory')
        new_password = data.get('new_password')
        if new_password is None:
            invalid_req.add_error('new_password', 'New password is mandatory')

        confirm_password = data.get('confirm_password')
        if confirm_password is None:
            invalid_req.add_error('confirm_password',
                                  'Confirm password is mandatory')

        if new_password and confirm_password and \
                new_password != confirm_password:
            invalid_req.add_error(
                'confirm_password',
                'Password and Confirm password must be same')

        if invalid_req.has_errors:
            return invalid_req

        return ChangeAccountPasswordRequestObject(entity_cls,
                                                  adict['identifier'],
                                                  adict['data'])