def verify_auth_token(token): d = _load(current_app.config['SECRET_KEY'], token, salt=g.secret) if d: user = UserService.get(d.get('i'), raise_not_found=False) if user: return user if user.tick == d.get('t') else None return None
def index(user_service: UserService): try: offset = request.args.get('offset', default=0, type=int) limit = request.args.get('limit', default=10, type=int) user_models = user_service.get(offset, limit) users = [UserVo(user_model).to_dict() for user_model in user_models] return jsonify({"users": users}), 200 except Exception as e: logger.error(e) return jsonify({'message': 'Failed ...'}), 500
def post(self, args): """Create a new Token.""" user = UserService.get(email=args['email'], raise_not_found=False) if not user: response.abort(response.Unauthorized.code) verified = False if UserService.check_password(user.password, args['password']): verified = True elif UserService.check_password(user.temp_password, args['password']): verified = True # these are only good once UserService.set_password(user, None, attr='temp_password') if verified: token = login_user(user) # user.tick is bumped with each login db.session.commit() return {'token': token, 'user_id': user.id} else: response.abort(response.Unauthorized.code)
class ContactController(Controller): def __init__(self): self.status = None self.content = None self.__errors = [] self.__contact_service = ContactService() self.__email_service = EmailService() self.__phone_service = PhoneService() self.__user_service = UserService() def save(self, user_id, data): __user = self.__user_service.get(user_id) self.__verify_user(__user) if not data['name']: self.__errors.append(USER['CONTACT']['NAME']['NOT_FOUND']) if len(self.__errors) > 0: self.content = {'errors': self.__errors} self.status = STATUS_CODE['NOT_FOUND'] else: __contact = self.__contact_service.save(data) self.content = {'data': __contact.toDICT()} self.status = STATUS_CODE['CREATED'] def add_phone(self, user_id, contact_id, data): self.__verify_phone(data['phone']) __contact = self.__contact_service.get(user_id, contact_id) self.__verify_contact(__contact) if len(self.__errors) > 0: self.content = {'errors': self.__errors} else: data['user_id'] = user_id self.__phone_service.save(data) self.__get_contatc(__contact) def add_email(self, user_id, contact_id): self.__verify_email(data['email']) __contact = self.__contact_service.get(user_id, contact_id) self.__verify_contact(__contact) if len(self.__errors) > 0: self.content = {'errors': self.__errors} else: self.__email_service.save(data) self.__get_contatc(__contact) def __get_contatc(self, contact): __contact_dict = contact.toDICT() __phones = self.__phone_service.get(contact.id) __emails = self.__email_service.get(contact.id) __contact_dict['phones'] = super().__toLIST(__phones) __contact_dict['emails'] = super().__toLIST(__emails) self.content = {'data': __contact_dict} self.status = STATUS_CODE['OK'] def get(self, user_id, contact_id): __contact = self.__contact_service.get(user_id, contact_id) self.__verify_contact(__contact) if len(self.__errors) > 0: self.content = {'errors': self.__errors} else: self.__get_contatc(__contact) def update(self): pass def remove(self): pass def __verify_user(self, user): if not user: self.__errors.append(USER['NOT_FOUND']) self.status = STATUS_CODE['NOT_FOUND'] def __verify_contact(self, contact): if not contact: self.__errors.append(USER['CONTACT']['NOT_FOUND']) self.status = STATUS_CODE['NOT_FOUND'] def __verify_email(self, email): if not email: self.__errors.append(USER['CONTACT']['EMAIL']['NOT_FOUND']) self.status = STATUS_CODE['NOT_FOUND'] elif not is_valid_email(email): self.__errors.append(USER['CONTACT']['EMAIL']['INVALID']) self.status = STATUS_CODE['BAD_REQUEST'] def __verify_phone(self, phone): if not phone: self.__errors.append(USER['CONTACT']['PHONE']['NOT_FOUND']) self.status = STATUS_CODE['NOT_FOUND']
def get(user_id): return Response(json.dumps(UserService.get(user_id)))