def get(self, user_id): role = None if g.user.is_admin: role = 'is_admin' can_see_full_details = role in ['is_admin'] if not can_see_full_details: public_serial_number = request.args.get('public_serial_number') if public_serial_number: user = User.query.filter_by( public_serial_number=public_serial_number.strip()).first() if user: transfer_account = TransferAccount.query.get( user.transfer_account_id) if transfer_account: response_object = { 'message': 'Successfully found transfer account!', 'data': { 'balance': transfer_account.balance } } return make_response(jsonify(response_object)), 201 response_object = { 'message': 'No transfer_account for user: {}'.format(user), } return make_response(jsonify(response_object)), 400 response_object = { 'message': 'No user for public serial number: {}'.format( public_serial_number), } return make_response(jsonify(response_object)), 400 response_object = { 'message': 'No public_serial_number provided', } return make_response(jsonify(response_object)), 400 account_type_filter = request.args.get('account_type') if account_type_filter: account_type_filter = account_type_filter.lower() if user_id: user = User.query.get(user_id) if user is None: response_object = { 'message': 'No such user: {}'.format(user_id), } return make_response(jsonify(response_object)), 400 response_object = { 'status': 'success', 'message': 'Successfully Loaded.', 'data': { 'user': user_schema.dump(user).data } } return make_response(jsonify(response_object)), 201 else: if account_type_filter == 'beneficiary': user_query = User.query.filter(User.is_beneficiary) elif account_type_filter == 'vendor': user_query = User.query.filter(User.is_vendor) elif account_type_filter == 'admin': user_query = User.query.filter(User.is_subadmin).order_by( User.created.desc()) else: user_query = User.query users, total_items, total_pages = paginate_query(user_query, User) if users is None: response_object = { 'message': 'No users', } return make_response(jsonify(response_object)), 400 user_list = users_schema.dump(users).data response_object = { 'message': 'Successfully Loaded.', 'pages': total_pages, 'items': total_items, 'data': { 'users': user_list, } } return make_response(jsonify(response_object)), 201
def get(self, user_id): can_see_full_details = AccessControl.has_suffient_role( g.user.roles, {'ADMIN': 'admin'}) if not can_see_full_details: public_serial_number = request.args.get('public_serial_number') if public_serial_number: user = User.query.filter_by( public_serial_number=public_serial_number.strip()).first() if user: if user.default_transfer_account: response_object = { 'message': 'Successfully found transfer account!', 'data': { 'balance': user.default_transfer_account.balance } } return make_response(jsonify(response_object)), 201 response_object = { 'message': 'No transfer_account for user: {}'.format(user), } return make_response(jsonify(response_object)), 400 response_object = { 'message': 'No user for public serial number: {}'.format( public_serial_number), } return make_response(jsonify(response_object)), 400 response_object = { 'message': 'No public_serial_number provided', } return make_response(jsonify(response_object)), 400 account_type_filter = request.args.get('account_type') if account_type_filter: account_type_filter = account_type_filter.lower() if user_id: user = User.query.get(user_id) # # user.cashout_authorised() if user is None: response_object = { 'message': 'No such user: {}'.format(user_id), } return make_response(jsonify(response_object)), 400 response_object = { 'status': 'success', 'message': 'Successfully Loaded.', 'data': { 'user': user_schema.dump(user).data } } return make_response(jsonify(response_object)), 200 else: if account_type_filter == 'beneficiary': user_query = User.query.filter(User.has_beneficiary_role) elif account_type_filter == 'vendor': user_query = User.query.filter(User.has_vendor_role) elif account_type_filter == 'admin': user_query = User.query.filter(User.has_admin_role).order_by( User.created.desc()) else: user_query = User.query users, total_items, total_pages = paginate_query(user_query, User) if users is None: response_object = { 'message': 'No users', } return make_response(jsonify(response_object)), 400 user_list = users_schema.dump(users).data response_object = { 'message': 'Successfully Loaded.', 'pages': total_pages, 'items': total_items, 'data': { 'users': user_list, } } return make_response(jsonify(response_object)), 200