示例#1
0
    async def post(self, request):
        request_data = request.form
        try:
            name = request_data['name'][0]
            password = request_data['password'][0]
        except KeyError as e:
            return RestStatus.response_status(301, "parameter error")
        except Exception as e:
            return RestStatus.response_status(301, "parameter error")

        if not all([name, password]):
            return RestStatus.response_status(301, "parameter error")

        salt = generate_slat()
        sql = "SELECT * FROM users WHERE name=$1"
        async with request.app.db.acquire(request) as cur:
            data = await cur.fetch(sql, name)
            if data:
                return RestStatus.response_status(302, "user exist")

        insert_sql = "insert into users(id,name,password,salt,role) values($1, $2, $3, $4, $5)"
        id = str(uuid.uuid1())
        encode_password = hashlib.sha1((password+salt).encode('utf8')).hexdigest()
        async with request.app.db.transaction(request) as cur:
            data = await cur.execute(insert_sql, id, name, encode_password, salt, "admin")
            if data:
                return RestStatus.response_status(201, "ok")
            else:
                return RestStatus.response_status(300, "save user fail")
示例#2
0
    async def post(self, request):
        request_data = request.form
        try:
            name = request_data['name'][0]
            open = request_data['open'][0]
        except KeyError as e:
            return RestStatus.response_status(301, "parameter error")
        except Exception as e:
            return RestStatus.response_status(301, "parameter error")

        if not all([name, open]):
            return RestStatus.response_status(301, "parameter error")

        sql = "SELECT * FROM xauth_role WHERE name=$1"
        insert_sql = "INSERT INTO xauth_role(id, name) values($1, $2)"
        async with request.app.db.transaction(request) as cur:
            data = await cur.fetch(sql, name)
            if data:
                return RestStatus.response_status(401, "already exist role")
            id = str(uuid.uuid1())
            data = await cur.execute(insert_sql, id, name)
            if open:
                with request.app.conn as conn:
                    url_status = await conn.execute(
                        'SADD', settings.xauth_api_allow_all, url)

            if data:
                return RestStatus.response_status(200, "ok")
            else:
                return RestStatus.response_status(300, "insert error")
示例#3
0
    async def post(self, request):
        request_data = request.form
        try:
            role_name = request_data['role_name'][0]
            api_id = request_data['api_id'][0]
        except KeyError as e:
            return RestStatus.response_status(301, "parameter error")
        except Exception as e:
            return RestStatus.response_status(301, "parameter error")

        if not all([name]):
            return RestStatus.response_status(301, "parameter error")

        sql = "SELECT * FROM xauth_permission WHERE role_name=$1 and api_id=$2"
        api_sql = "SELECT name, url FROM xauth_api WHERE id=$1"
        insert_sql = "INSERT INTO xauth_permission(id, name) values($1, $2)"
        async with request.app.db.transaction(request) as cur:
            data = await cur.fetch(sql, name)
            if data:
                return RestStatus.response_status(401, "already exist role")
            id = str(uuid.uuid1())
            data = await cur.execute(insert_sql, id, name)
            if data:
                service_redis_key = settings.xauth_server_privileage.format(
                    role=user_role, service=service)
                with await request.app.conn as conn:
                    url_status = await conn.execute('SADD', service_redis_key,
                                                    url)
                return RestStatus.response_status(200, "ok")
            else:
                return RestStatus.response_status(300, "insert error")
示例#4
0
    async def post(self, request):
        request_data = request.form
        try:
            name = request_data['name'][0]
            password = request_data['password'][0]
        except KeyError as e:
            return RestStatus.response_status(301, "parameter error")
        except Exception as e:
            return RestStatus.response_status(301, "parameter error")

        if not all([name, password]):
            return RestStatus.response_status(301, "parameter error")

        sql = "SELECT * FROM users WHERE name=$1"
        async with request.app.db.acquire(request) as cur:
            data = await cur.fetchrow(sql, name)
            if data:
                if hashlib.sha1((password+data['salt']).encode('utf8')).hexdigest() == data['password']:
                    token = JwtHelper.generate_token()
                    return RestStatus.response_status(200, "ok", data={'token':token})
                else:
                    return RestStatus.response_status(301, "user or password error")
            else:
                return RestStatus.response_status(301, "user or password error")
示例#5
0
    async def delete(self, request):
        request_data = request.form
        try:
            id = request_data['id'][0]
        except KeyError as e:
            return RestStatus.response_status(301, "parameter error")
        except Exception as e:
            return RestStatus.response_status(301, "parameter error")

        if not all([id]):
            return RestStatus.response_status(301, "parameter error")

        sql = "SELECT * FROM xauth_api WHERE id=$1"
        delete_sql = "delete from xauth_api where id=$1"
        async with request.app.db.transaction(request) as cur:
            data = await cur.fetch(sql, name)
            if not data:
                return RestStatus.response_status(401, "not exist api")

            data = await cur.execute(delete_sql, id)
            if data:
                return RestStatus.response_status(200, "ok")
            else:
                return RestStatus.response_status(300, "delete error")
示例#6
0
 def hello(self, request):
     print("afwefaewfaw")
     return RestStatus.response_status(200, "pengfeng")
示例#7
0
    def print_hh(self, request):
        print("i am print hh")

        return RestStatus.response_status(400, "request method error")
示例#8
0
    def delete(self, request):
        print("i am delete")

        return RestStatus.response_status(400, "request method error")
示例#9
0
 async def post(self, request):
     request_data = request.form
     return RestStatus.response_status(200, "ok", data=data)
示例#10
0
 async def get(self, request):
     data = await User.filter(request, id='yinxingpan')
     new_obj = User(id="yinxingpan", name="haha2", password="******")
     result = await new_obj.save(request)
     print(data)
     return RestStatus.response_status(200, "ok", data=data)