示例#1
0
 def put(uid=None):
     if not check_utils.check_param_format(
             request.path, [r"^/v1/bms/user/([1-9][0-9]*)/$"]):
         return status_code.URL_ERROR
     data = request.json
     if not (data and isinstance(data, dict)):
         return status_code.JSON_PARAMS_ERROR
     if not data.get("phone"):
         return {
             "code": status_code.REQUIRED_PARAM_CODE,
             "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("电话号码"),
             "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("phone")
         }
     try:
         user_service = UserService()
         user = user_service.get_user_by_id(user_id=uid)
         if not user:
             return status_code.USER_NOT_EXIST
         user_service.update_user_basic(user_id=uid,
                                        phone=data.get("phone"),
                                        username=data.get("username"),
                                        gender=data.get("gender"),
                                        email=data.get("email"),
                                        birth=data.get("birth"))
         return status_code.SUCCESS
     except Exception as ex:
         print(ex)
         logger.error("修改用户基础信息失败,{}".format(ex))
         return status_code.FAIL
示例#2
0
    def patch(uid=None):
        if not check_utils.check_param_format(request.path,
                                              [r"^/v1/bms/user/$"]):
            return status_code.URL_ERROR
        data = request.json
        if not (data and isinstance(data, dict)) or not isinstance(
                data.get("ids"), list):
            return status_code.JSON_PARAMS_ERROR
        if not data.get("ids"):
            return {
                "code": status_code.REQUIRED_PARAM_CODE,
                "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("用户id"),
                "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("user ids")
            }
        # if data.get("is_active") == None or data.get("is_active") == "":
        #     return {"code": status_code.REQUIRED_PARAM_CODE,


#                     "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("激活状态"),
#                     "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("active status")}
        if not isinstance(data.get("is_active"), bool):
            return status_code.ACTIVE_NOT_BOOL
        try:
            user_service = UserService()
            user_service.change_user_status(is_active=data.get("is_active"),
                                            user_id_list=data.get("ids"))
            return status_code.SUCCESS
        except Exception as ex:
            print(ex)
            logger.error("修改用户状态失败,{}".format(ex))
            return status_code.FAIL
示例#3
0
    def post(uid=None):
        if not check_utils.check_param_format(request.path,
                                              [r"^/v1/bms/user/$"]):
            return status_code.URL_ERROR
        data = request.json
        if not (data and isinstance(data, dict)):
            return status_code.JSON_PARAMS_ERROR
        for k, v in USER_REQUIRED_FIELD.items():
            if not data.get(k):
                return {
                    "code": status_code.REQUIRED_PARAM_CODE,
                    "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v),
                    "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k)
                }
        # 正则验证

        try:
            user_service = UserService()
            user = user_service.get_user_by_account(
                account=data.get("account"))
            if user:
                return status_code.USER_ACCOUNT_EXIST
            user_service.create_user(account=data.get("account"),
                                     password=data.get("password"),
                                     phone=data.get("phone"),
                                     username=data.get("username"),
                                     gender=data.get("gender"),
                                     email=data.get("email"),
                                     birth=data.get("birth"),
                                     is_active=data.get("is_active"))
            return status_code.SUCCESS
        except Exception as ex:
            print(ex)
            logger.error("创建用户失败,{}".format(ex))
            return status_code.FAIL
示例#4
0
    def post():
        data = request.json
        if not (data and isinstance(data, dict)):
            return status_code.JSON_PARAMS_ERROR
        for k, v in USER_REQUIRED_FIELD.items():
            if not data.get(k):
                return {
                    "code": status_code.REQUIRED_PARAM_CODE,
                    "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format(v),
                    "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format(k)
                }
        # 正则验证

        account = data.get("account")
        password = data.get("password")
        phone = data.get("phone")
        try:
            user_service = UserService()
            user = user_service.get_user_by_account(account=account)
            if user:
                return status_code.USER_ACCOUNT_EXIST
            user_service.create_user(account=account,
                                     password=password,
                                     phone=phone)
            return status_code.SUCCESS
        except Exception as ex:
            print(ex)
            logger.error("用户注册失败,{}".format(ex))
            return status_code.FAIL
示例#5
0
    def wrapper(*args, **kwargs):
        try:
            user_service = UserService()
            if not user_service.get_user_active(user_id=session.get("user_id")):
                return jsonify(status_code.USER_IS_NOT_ACTIVE)
        except Exception as ex:
            print(ex)
            return jsonify(status_code.FAIL)

        return func(*args, **kwargs)
示例#6
0
 def patch(uid=None):
     if not check_utils.check_param_format(
             request.path, [r"^/v1/bms/user/([1-9][0-9]*)/password/$"]):
         return status_code.URL_ERROR
     try:
         user_service = UserService()
         new_password = get_reset_password()
         user_service.update_user_password(user_id=uid,
                                           new_password=new_password)
         result = status_code.SUCCESS
         result["new_password"] = new_password
         return result
     except Exception as ex:
         print(ex)
         logger.error("重置用户密码失败,{}".format(ex))
         return status_code.FAIL
示例#7
0
    def delete():
        """
        登出
        :return:
        """

        client_ip = request.remote_addr
        # 判断session中是否有token
        if not session.get("user_token"):
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登出", action_en="user logout",
                                 result_cn="成功", result_en="SUCCESS", reason="用户已经登出")
            result = Message(status_code=STATUS_CODE["SUCCESS"], msg_cn="用户已经登出",
                             msg_en="user already logout.").to_dict()
            return jsonify(result)
        # 获取用户
        user = UserService().get_user_by_token(session.get("user_token"))
        # 清空session
        session.clear()
        # 写运行日志

        # 写操作日志
        LogService.write_log(client_ip=client_ip, action_cn="用户登出", action_en="user logout",
                             result_cn="成功", result_en="SUCCESS", reason="用户登出成功", user_id=user.id)
        result = Message(status_code=STATUS_CODE["SUCCESS"], msg_cn="用户登出成功",
                         msg_en="user logout successful.").to_dict()
        return jsonify(result)
示例#8
0
    def wrapper(*args, **kwargs):
        if not (session and session.get("user_id") and session.get("token")):
            return status_code.USER_NO_LOGIN
        try:
            user_service = UserService()
            user = user_service.get_user_by_id(session.get("user_id"))
            if not user:
                return status_code.USER_NOT_EXIST
            if not user.get("is_active"):
                return status_code.USER_IS_NOT_ACTIVE
            if user.get("token") != session.get("token"):
                return status_code.PLEASE_LOGIN
        except Exception as ex:
            print(ex)
            logger.error("认证失败,{}".format(ex))
            return status_code.FAIL

        return func(*args, **kwargs)
示例#9
0
    def delete():
        """
        删除数据库
        :return:
        """

        client_ip = request.remote_addr
        user_token = session.get("user_token")
        if not user_token:
            # 写运行日志、操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="删除数据库",
                                 action_en="drop db",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="数据库删除失败,用户token失效")
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="数据库删除失败,用户token失效",
                             msg_en="operation fail.").to_dict()
            return jsonify(result)
        user = UserService().get_user_by_token(user_token)
        if not user:
            # 写运行日志、操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="删除数据库",
                                 action_en="drop db",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="数据库删除失败,用户不存在")
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="数据库删除失败,用户不存在",
                             msg_en="operation fail.").to_dict()
            return jsonify(result)
        try:
            if DBService.clear_db():
                # 写运行日志

                result = Message(status_code=STATUS_CODE["SUCCESS"],
                                 msg_cn="操作成功",
                                 msg_en="operation success.").to_dict()
                return jsonify(result)
        except Exception as ex:
            print("数据库删除失败,{}".format(ex))
            # 写运行日志、操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="删除数据库",
                                 action_en="drop db",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="数据库删除失败,{}".format(ex),
                                 user_id=user.id)
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="操作失败",
                             msg_en="operation fail.").to_dict()
            return jsonify(result)
示例#10
0
 def post():
     data = request.json
     session.clear()
     if not (data and isinstance(data, dict)):
         return status_code.JSON_PARAMS_ERROR
     account = data.get("account")
     password = data.get("password")
     if not account:
         return {
             "code": status_code.REQUIRED_PARAM_CODE,
             "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("帐号"),
             "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("account")
         }
     if not password:
         return {
             "code": status_code.REQUIRED_PARAM_CODE,
             "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("密码"),
             "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("password")
         }
     try:
         user_service = UserService()
         user = user_service.get_user_by_account(account=account)
         if not user:
             return status_code.USER_NOT_EXIST
         if not user.get("is_active"):
             return status_code.USER_IS_NOT_ACTIVE
         if not user_service.check_user_password(user_id=user.get("id"),
                                                 password=password):
             return status_code.PASSWORD_ERROR
         token = user_service.change_user_token(user_id=user.get("id"))
         session["user_id"] = user.get("id")
         session["token"] = token
         result = status_code.SUCCESS
         result["token"] = token
         return result
     except Exception as ex:
         print(ex)
         logger.error("用户登录失败,{}".format(ex))
         return status_code.FAIL
示例#11
0
 def delete(uid=None):
     if not check_utils.check_param_format(request.path,
                                           [r"^/v1/bms/user/$"]):
         return status_code.URL_ERROR
     data = request.json
     if not (data and isinstance(data, dict)) or not isinstance(
             data.get("ids"), list):
         return status_code.JSON_PARAMS_ERROR
     if not data.get("ids"):
         return {
             "code": status_code.REQUIRED_PARAM_CODE,
             "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("用户id"),
             "msg_en": status_code.REQUIRED_PARAM_MSG_EN.format("user ids")
         }
     try:
         user_service = UserService()
         user_service.delete_user(user_id_list=data.get("ids"))
         return status_code.SUCCESS
     except Exception as ex:
         print(ex)
         logger.error("删除用户失败,{}".format(ex))
         return status_code.FAIL
示例#12
0
 def get(uid=None):
     if not check_utils.check_param_format(
             request.path,
         [r"^/v1/bms/user/([1-9][0-9]*)/$", r"^/v1/bms/user/$"]):
         return status_code.URL_ERROR
     try:
         user_service = UserService()
         if uid:
             user = user_service.get_user_by_id(user_id=uid)
             if not user:
                 return status_code.USER_NOT_EXIST
             result = status_code.SUCCESS
             result["data"] = user
             return result
         else:
             users = user_service.get_users()
             result = status_code.SUCCESS
             result["data"] = users
             return result
     except Exception as ex:
         print(ex)
         logger.error("获取用户失败,{}".format(ex))
         return status_code.FAIL
示例#13
0
    def get():
        """
        列表
        :return:
        """

        client_ip = request.remote_addr
        user = UserService().get_user_by_id(session.get("user_id"))
        try:
            # 获取日记列表
            diary_list = DiaryService().get_list()
            # 写运行日志、操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="获取日记列表",
                                 action_en="get diary list",
                                 result_cn="成功",
                                 result_en="SUCCESS",
                                 reason="获取日记列表成功",
                                 user_id=user.id)
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="获取日记列表成功",
                             msg_en="success to get diary list.").to_dict()
            result["data"] = diary_list
            return jsonify(result)
        except Exception as ex:
            print("获取日记列表失败,{}".format(ex))
            # 写运行日志、操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="获取日记列表",
                                 action_en="get diary list",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="获取日记列表失败,{}".format(ex),
                                 user_id=user.id)
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="获取日记列表失败,{}".format(ex),
                             msg_en="failed to get diary list.").to_dict()
            return jsonify(result)
示例#14
0
 def patch():
     if not check_utils.check_param_format(request.path,
                                           [r"^/v1/bms/user/password/$"]):
         return status_code.URL_ERROR
     user_id = session.get("user_id")
     data = request.json
     if not (data and isinstance(data, dict)):
         return status_code.JSON_PARAMS_ERROR
     if not data.get("old_password"):
         return {
             "code": status_code.REQUIRED_PARAM_CODE,
             "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("原密码"),
             "msg_en":
             status_code.REQUIRED_PARAM_MSG_EN.format("old password")
         }
     if not data.get("new_password"):
         return {
             "code": status_code.REQUIRED_PARAM_CODE,
             "msg_cn": status_code.REQUIRED_PARAM_MSG_CN.format("新密码"),
             "msg_en":
             status_code.REQUIRED_PARAM_MSG_EN.format("new password")
         }
     try:
         user_service = UserService()
         user = user_service.get_user_by_id(user_id=user_id)
         if not user:
             return status_code.USER_NOT_EXIST
         if not user_service.check_user_password(
                 user_id=user_id, password=data.get("old_password")):
             return status_code.PASSWORD_ERROR
         user_service.update_user_password(
             user_id=user_id, new_password=data.get("new_password"))
         return status_code.SUCCESS
     except Exception as ex:
         print(ex)
         logger.error("修改用户密码失败,{}".format(ex))
         return status_code.FAIL
示例#15
0
    def wrapper(*args, **kwargs):
        client_ip = request.remote_addr
        # 判断session中用户id
        if not session.get("user_id"):
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="判断session中用户id",
                                 action_en="judged user id in session",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="session中用户id不存在")
            result = Message(
                status_code=STATUS_CODE["ERROR"],
                msg_cn="session中用户id不存在",
                msg_en="user id in session is not existed.").to_dict()
            return jsonify(result)
        # 判断session中用户token
        if not session.get("user_token"):
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="判断session中用户token",
                                 action_en="judged user token in session",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="session中用户token不存在")
            result = Message(
                status_code=STATUS_CODE["ERROR"],
                msg_cn="session中用户token不存在",
                msg_en="user token in session is not existed.").to_dict()
            return jsonify(result)
        user = UserService().get_user_by_id(session.get("user_id"))
        if not user:
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="获取用户",
                                 action_en="get user by id",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="用户信息不存在")
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="用户信息不存在",
                             msg_en="user is not existed.").to_dict()
            return jsonify(result)
        if user.token != session.get("user_token"):
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip,
                                 action_cn="判断用户token",
                                 action_en="judged user token",
                                 result_cn="失败",
                                 result_en="FAIL",
                                 reason="session中的用户token与数据库不一致")
            result = Message(status_code=STATUS_CODE["ERROR"],
                             msg_cn="session中的用户token与数据库不一致",
                             msg_en="user is not existed.").to_dict()
            return jsonify(result)

        return func(*args, **kwargs)
示例#16
0
    def post():
        """
        登录
        :return:
        """

        client_ip = request.remote_addr
        data = request.json
        # 判断是否有数据
        if data is None:
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                                 result_cn="失败", result_en="FAIL", reason="请求参数错误")
            result = Message(status_code=STATUS_CODE["ERROR"], msg_cn="请求参数错误",
                             msg_en="request parameter error.").to_dict()
            return jsonify(result)
        # 判断账户、密码的数据格式
        if not data.get("account").strip():
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                                 result_cn="失败", result_en="FAIL", reason="登录账号为空")
            result = Message(status_code=STATUS_CODE["ERROR"], msg_cn="登录账号为空",
                             msg_en="login account is empty.").to_dict()
            return jsonify(result)
        if not data.get("password").strip():
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                                 result_cn="失败", result_en="FAIL", reason="登录密码为空")
            result = Message(status_code=STATUS_CODE["ERROR"], msg_cn="登录密码为空",
                             msg_en="login password is empty.").to_dict()
            return jsonify(result)
        # UserService对象
        user_service = UserService()
        # 获取用户
        user = user_service.get_user_by_account(data.get("account").strip())
        # 判断是否存在
        if not user:
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                                 result_cn="失败", result_en="FAIL", reason="账户不存在")
            result = Message(status_code=STATUS_CODE["ERROR"], msg_cn="账户不存在",
                             msg_en="user account is not existed.").to_dict()
            return jsonify(result)
        # 判断密码是否正确
        if not user.check_password(data.get("password").strip()):
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                                 result_cn="失败", result_en="FAIL", reason="登录密码错误")
            result = Message(status_code=STATUS_CODE["ERROR"], msg_cn="登录密码错误",
                             msg_en="login password error.").to_dict()
            return jsonify(result)
        # 判断是否激活
        if not user.is_active:
            # 写运行日志

            # 写操作日志
            LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                                 result_cn="失败", result_en="FAIL", reason="用户未激活")
            result = Message(status_code=STATUS_CODE["ERROR"], msg_cn="用户未激活, 请联系管理员",
                             msg_en="user is not active, please contact administrator.").to_dict()
            return jsonify(result)
        # 生成新的token
        user_token = uuid.uuid1().hex
        # 更新token
        user_service.update_user_token(user, user_token)
        # 将用户信息保存在session中
        session["user_token"] = user_token
        session["user_id"] = user.id
        # 写运行日志

        # 写操作日志
        LogService.write_log(client_ip=client_ip, action_cn="用户登录", action_en="user login",
                             result_cn="成功", result_en="SUCCESS", reason="登录成功", user_id=user.id)
        result = Message(status_code=STATUS_CODE["SUCCESS"], msg_cn="登录成功",
                         msg_en="user login successful.").to_dict()
        return jsonify(result)