コード例 #1
0
ファイル: auth_c.py プロジェクト: leeexing/opera-api
    def add_user_by_admin(self):
        """管理员添加用户

            :doc 手动添加系统用户
        """
        try:
            identity = self.get_user()
            if not identity.get('userID'):
                return self.Response.return_false_data(msg='请登陆'), 401
            userID = identity.get('userID')
            identity_type = identity.get('usertype')
            if identity_type == EnumUserType.Admin.name:
                user_info = request.get_json()
                if not user_info:
                    return self.Response.return_false_data(msg='参数错误')
                username = user_info.get('userName')
                password = user_info.get('password', '123456')
                nickname = user_info.get('nickName', username)
                user_type = user_info.get('userType', 9)
                remark = user_info.get('remark')
                if not all([username, password, user_type]):
                    return self.Response.return_false_data(msg='新建账号信息不完整')
                if not re.match(r'[a-z, A-Z]*\d*$', username):
                    return self.Response.return_false_data(msg='账号格式不正确')
                user = User.query.filter_by(UserName=username).first()
                if user:
                    return self.Response.return_false_data(msg='用户名已注册')
                # ^添加用户
                user = User(UserName=username,
                            Name=nickname,
                            Remark=remark,
                            CreatorId=userID,
                            UserType=EnumUserType(int(user_type)).name)
                user.password = password
                # 自动添加头像
                user.AvatarUrl = user.generateAvatar()
                try:
                    self.db.session.add(user)
                    self.db.session.commit()
                except Exception as e:
                    self.logger.error('数据库错误:%s', str(e))
                    self.db.session.rollback()
                    return self.Response.return_server_error()
                data = {'username': username, 'nickname': nickname}
                return self.Response.return_true_data(data=data)
            else:
                return self.Response.return_false_data(msg='权限不足')
        except Exception as e:
            self.logger.error('服务器错误:%s', str(e))
            return self.Response.return_server_error()
コード例 #2
0
ファイル: auth_c.py プロジェクト: leeexing/opera-api
 def register(self):
     """用户注册"""
     try:
         user_info = request.get_json()
         if not user_info:
             return self.Response.return_false_data(msg='参数错误')
         username = user_info.get('userName')
         password = user_info.get('password')
         user_type = user_info.get('userType', 9)
         if not all([username, password]):
             return self.Response.return_false_data(msg='账号密码不完整!')
         if not re.match(r'[a-z, A-Z]*\d*$', password):
             return self.Response.return_false_data(msg='密码格式不正确!')
         try:
             user = User.query.filter_by(UserName=username).first()
         except Exception as e:
             self.logger.error('Database Error:%s', str(e))
             return self.Response.return_server_error()
         if user:
             return self.Response.return_false_data(msg='用户名已注册!')
         # ^添加用户
         user = User(UserName=username,
                     Name=None,
                     UserType=EnumUserType(int(user_type)).name)
         user.password = password
         # 自动添加头像
         user.AvatarUrl = user.generateAvatar()
         try:
             self.db.session.add(user)
             self.db.session.commit()
         except Exception as e:
             self.logger.error('Database Error:%s', str(e))
             self.db.session.rollback()
             return self.Response.return_server_error()
         data = {
             'username': user.UserName,
             'nickName': user.Name,
             'userType': user.UserType.name
         }
         return self.Response.return_true_data(data=data)
     except Exception as e:
         self.logger.error('Server Error: %s', str(e))
         return self.Response.return_server_error()