def get(self, prefix): page = request.args.get('page', 0, type=int) limit = request.args.get('limit', 10, type=int) order = request.args.get('order', 'desc') try: if prefix == 'me': user_id = token_load_with_auth(request.headers['Authorization'])['user_id'] else: user_id = int(prefix) if token_is_auth(request.headers['Authorization'], user_id): _return = { 'paging': { 'previous': '%s%s?page=%d&limit=%d&order=%s' % ( DEFAULT_URL, request.path, page if page < 1 else page - 1, limit, order ), 'next': '%s%s?page=%d&limit=%d&order=%s' % ( DEFAULT_URL, request.path, page + 1, limit, order ) }, 'data': [] } histories = get_login_histories(user_id, order, page, limit) for history in histories: _return['data'].append(serialize_login_history(history)) return _return, status.HTTP_200_OK else: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED except ValueError: return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
def delete(self, prefix): try: if prefix == 'me': user_id = token_load_with_auth( request.headers['Authorization'])['user_id'] else: user_id = int(prefix) user_query = UserModel.query \ .filter(UserModel.id == user_id) if token_is_auth(request.headers['Authorization'], user_id): if user_query.count(): token_delete_all(user_id) user = user_query.first() db.session.delete(user) db.session.commit() return None, status.HTTP_200_OK else: return "The user does not exist.", status.HTTP_404_NOT_FOUND else: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED except ValueError: return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
def get(self): page = request.args.get('page', 0, type=int) limit = request.args.get('limit', 10, type=int) order = request.args.get('order', 'desc') if token_is_auth(request.headers['Authorization']): _return = { 'paging': { 'previous': '%s%s?page=%d&limit=%d&order=%s' % (DEFAULT_URL, request.path, page if page < 1 else page - 1, limit, order), 'next': '%s%s?page=%d&limit=%d&order=%s' % (DEFAULT_URL, request.path, page + 1, limit, order) }, 'data': [] } users = get_users(order, page, limit) for user in users: _return['data'].append(serialize_user(user)) return _return, status.HTTP_200_OK return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
def delete(self, prefix): try: if prefix == 'me': user_id = token_load_with_auth(request.headers['Authorization'])['user_id'] else: user_id = int(prefix) user_query = UserModel.query \ .filter(UserModel.id == user_id) if token_is_auth(request.headers['Authorization'], user_id): if user_query.count(): token_delete_all(user_id) user = user_query.first() db.session.delete(user) db.session.commit() return None, status.HTTP_200_OK else: return "The user does not exist.", status.HTTP_404_NOT_FOUND else: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED except ValueError: return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
def get(self): page = request.args.get('page', 0, type=int) limit = request.args.get('limit', 10, type=int) order = request.args.get('order', 'desc') if token_is_auth(request.headers['Authorization']): _return = { 'paging': { 'previous': '%s%s?page=%d&limit=%d&order=%s' % ( DEFAULT_URL, request.path, page if page < 1 else page - 1, limit, order ), 'next': '%s%s?page=%d&limit=%d&order=%s' % ( DEFAULT_URL, request.path, page + 1, limit, order ) }, 'data': [] } users = get_users(order, page, limit) for user in users: _return['data'].append(serialize_user(user)) return _return, status.HTTP_200_OK return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
def get(self, prefix): try: if prefix == 'me': user_id = token_load_with_auth(request.headers['Authorization'])['user_id'] else: user_id = int(prefix) if token_is_auth(request.headers['Authorization'], user_id): user = get_user(user_id) return serialize_user(user), status.HTTP_200_OK else: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED except ValueError: return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
def get(self): page = request.args.get('page', 0, type=int) limit = request.args.get('limit', 10, type=int) order = request.args.get('order', 'desc') if token_is_auth(request.headers['Authorization']): _return = {'paging': paging.get_urls(), 'data': []} users = get_users(order, page, limit) for user in users: _return['data'].append(serialize_user(user)) return _return, status.HTTP_200_OK return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
def put(self, prefix): try: if prefix == 'me': user_id = token_load_with_auth( request.headers['Authorization'])['user_id'] else: user_id = int(prefix) user_query = UserModel.query \ .filter(UserModel.id == user_id) if token_is_auth(request.headers['Authorization'], user_id): user_permission = token_load_with_auth( request.headers['Authorization'])['permission'] if user_permission != 'ADMIN' and request.form.get( 'permission') is not None: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED form = userValidate.modificationForm(request.form) if form.validate(): if user_query.count(): user = user_query.first() try: for key, value in request.form.items(): if value is not None and value != '': if key == 'password': value = generate_password_hash(value) token_expire_all(user.id) setattr(user, key, value) user.updated_at = datetime.datetime.now() db.session.commit() except IntegrityError as e: field, value = get_exists_error(e) _return = { 'message': "'" + value + "' is already exists.", 'field': { 'label': getattr(form, field).label.text, 'name': field } } return _return, status.HTTP_400_BAD_REQUEST return None, status.HTTP_200_OK else: return "The user does not exist.", status.HTTP_404_NOT_FOUND for field, errors in form.errors.items(): for error in errors: _return = { 'message': error, 'field': getattr(form, field).label.text } return _return, status.HTTP_400_BAD_REQUEST else: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED except ValueError: return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
def put(self, prefix): try: if prefix == 'me': user_id = token_load_with_auth(request.headers['Authorization'])['user_id'] else: user_id = int(prefix) user_query = UserModel.query \ .filter(UserModel.id == user_id) if token_is_auth(request.headers['Authorization'], user_id): user_permission = token_load_with_auth(request.headers['Authorization'])['permission'] if user_permission != 'ADMIN' and request.form.get('permission') is not None: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED form = userValidate.modificationForm(request.form) if form.validate(): if user_query.count(): user = user_query.first() try: for key, value in request.form.items(): if value is not None and value != '': if key == 'password': value = generate_password_hash(value) token_expire_all(user.id) setattr(user, key, value) user.updated_at = datetime.datetime.now() db.session.commit() except IntegrityError as e: field, value = get_exists_error(e) _return = { 'message': "'" + value + "' is already exists.", 'field': { 'label': getattr(form, field).label.text, 'name': field } } return _return, status.HTTP_400_BAD_REQUEST return None, status.HTTP_200_OK else: return "The user does not exist.", status.HTTP_404_NOT_FOUND for field, errors in form.errors.items(): for error in errors: _return = { 'message': error, 'field': getattr(form, field).label.text } return _return, status.HTTP_400_BAD_REQUEST else: return "You don't have permission.", status.HTTP_401_UNAUTHORIZED except ValueError: return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST