示例#1
0
 def post(self):
     # register interface
     req_data = request.get_json()
     user_name = req_data.get('username', None)
     user_pass = req_data.get('password', None)
     if not user_name or not user_pass:
         return StandardResponse(403, 1, 'Forbidden')
     user = UsersModel(user_name, user_pass)
     try:
         user.add(user)
     except Exception, e:
         return StandardResponse(500, 1, e.message)
示例#2
0
 def post(self):
     """
     用户注册
     :return: json
     """
     self.parser.add_argument(
         "email",
         type=inputs.regex(
             r'(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)'),
         required=True,
         location="json",
         help='email format is incorrect')
     self.parser.add_argument("username",
                              type=str,
                              required=True,
                              location="json",
                              help='username is required')
     # self.parser.add_argument("permission", type=str, choices=['test', 'guest', 'user', 'admin', 'superAdmin'], required=True, location="json",
     #                          help='permission is required and only (test,user,admin,superAdmin)')
     self.parser.add_argument("permission",
                              type=str,
                              required=True,
                              location="json",
                              help='permission is required')
     self.parser.add_argument("password",
                              type=password_len,
                              required=True,
                              location="json",
                              trim=True)
     args = self.parser.parse_args()
     userEmailInfo = UsersModel.query.filter_by(email=args.email).all()
     for item in userEmailInfo:
         if item.id != args.id:
             return pretty_result(code.ERROR, msg='该邮箱已经被注册!')
     user = UsersModel(email=args.email,
                       username=args.username,
                       password=UsersModel.set_password(
                           UsersModel, args.password),
                       permission=args.permission)
     result = UsersModel.add(UsersModel, user)
     if user.id:
         returnUser = {
             'id': user.id,
             'username': user.username,
             'email': user.email,
             'login_time': user.login_time
         }
         return pretty_result(code.OK, data=returnUser, msg='用户注册成功')
     else:
         return pretty_result(code.ERROR, data='', msg='用户注册失败(用户名或邮箱已存在)')
示例#3
0
class Users(Controller):
    # constructor
    def __init__(self):
        super(Users, self).__init__()
        self._data = UsersModel()

    # login
    def login(self):
        if self.logged():
            return write("Well done")

        email = request.values.get("email")
        password = request.values.get("password")

        if email is not None and \
           password is not None and \
           self._data.valid(email, sha512(password)):
            session["email"] = email
            return write("Well done")
        else:
            return error("Incorrect login or password")

    # logout
    def logout(self):
        if not self.logged():
            return error("You not logged")

        session.pop('email', None)
        return write("Well done")

    # entered
    def entered(self):
        if self.logged():
            return write("Yes")
        else:
            return write("No")

    # register new user
    def register(self):
        if self.logged():
            return error("You are already logged")

        email = request.values.get("email")
        password = request.values.get("password")
        fname = request.values.get("fname")
        lname = request.values.get("lname")
        role = request.values.get("role")
        avatar = request.values.get("avatar")
        status = request.values.get("status")

        if (not (type(email) is unicode)) or (len(email) < 5):
            return error("Incorrect e-mail")

        if (not (type(password) is unicode)) or (len(password) < 5):
            return error("Incorrect password")

        if self._data.exists(email):
            return error("User with this e-mail already exists")

        try:
            self._data.add({"email": email,
                            "password": sha512(password),
                            "fname": fname,
                            "lname": lname,
                            "role": role,
                            "avatar": avatar,
                            "status": status})
            return write("Well done")
        except:
            return error("Registration failed")

    # delete user
    def delete(self):
        if not self.logged():
            return error("You not logged")

        try:
            id = int(request.values.get("id"))
            self._data.delete(id)
            return write("Well done")
        except:
            return error("Invalid request")

    # get user info
    def get(self, param):
        if not self.logged():
            return error("You not logged")

        try:
            if type(param) is int:
                return write(self._data.get(param))
            elif type(param) is unicode:
                return write(self._data.get(param))
            else:
                return write(self._data.get(session["email"]))
        except:
            return error("Invalid request")

    # change user info
    def change(self):
        if not self.logged():
            return error("You not logged")

        user = {"email": request.values.get("email"),
                "password": request.values.get("password"),
                "fname": request.values.get("fname"),
                "lname": request.values.get("lname"),
                "role": request.values.get("role"),
                "avatar": request.values.get("avatar"),
                "status": request.values.get("status")}

        try:
            id = int(request.values.get("id"))
            self._data.edit(id, user)
            return write("Well done")
        except:
            return error("Invalid request")

    # get all user list
    def all(self):
        if not self.logged():
            return error("You not logged")

        try:
            return write(self._data.all())
        except:
            return error("Invalid request")


    def fetch(self, **kwargs):
        action = kwargs.get("action")
        param = kwargs.get("param")

        if action == "login":
            return self.login()
        elif action == "logout":
            return self.logout()
        elif action == "entered":
            return self.entered()
        elif action == "register":
            return self.register()
        elif action == "delete":
            return self.delete()
        elif action == "get" or action is None:
            return self.get(param)
        elif action == "change":
            return self.change()
        elif action == "all":
            return self.all()
        else:
            return error("Invalid request")