예제 #1
0
파일: user.py 프로젝트: qyt2018/shiba
class UserListView(View):
    service = UserService
    decorators = [admin_required(), login_required("user")]

    async def get(self, request, user):
        service = self.service()
        result = await service.find_users({})
        return self.success(result)
예제 #2
0
파일: user.py 프로젝트: qyt2018/shiba
class UserLogoutView(View):
    decorators = [login_required("user")]
    service = UserService

    async def post(self, request, user):
        service = self.service()
        await service.logout(user)
        return self.success("成功")
예제 #3
0
파일: project.py 프로젝트: qyt2018/shiba
class ProjectDetailView(view.View):
    service = ProjectService
    decorators = [login_required("user")]

    async def get(self, request, user, pk):
        service = self.service()
        state, result = await service.get_project(pk)
        if state:
            return self.success(result)
        return self.fail(result)
예제 #4
0
파일: user.py 프로젝트: qyt2018/shiba
class DeleteUserView(View):
    service = UserService
    decorators = [admin_required(), login_required("user")]

    async def post(self, request, user_id, user):
        service = self.service()
        try:
            await service.delete_user(user_id)
            return self.success("成功")
        except Exception as e:
            return self.fail("删除出现错误")
예제 #5
0
파일: user.py 프로젝트: qyt2018/shiba
class CurrentUserView(View):
    decorators = [login_required("user")]

    async def get(self, request, user):
        result = {
            "id": str(user.id),
            "name": user.name,
            "username": user.username,
            "is_admin": user.is_admin,
            "scope": ["user"]
        }
        if user.is_admin:
            result['scope'].append("admin")
        return self.success(result)
예제 #6
0
파일: project.py 프로젝트: qyt2018/shiba
class ProjectListView(view.View):
    service = ProjectService
    search_fields = ('name', 'key')
    decorators = [login_required("user")]

    async def get(self, request, user):
        service = self.service()
        # 筛选条件
        search_filters = self.get_serach(request)
        filter = {"$or": [{'delete': False}, {'delete': None}]}
        if request.raw_args.get('me') == "true":
            filter['owner'] = str(user.id)
        filter = {'$and': [filter, search_filters]}
        result = await service.find_all_project(request, filter=filter)
        return self.success(result)
예제 #7
0
파일: user.py 프로젝트: qyt2018/shiba
class CreateUserView(View):
    service = UserService
    form = UserForm
    decorators = [admin_required(), login_required("user")]

    async def post(self, request, user):
        form = self.form(data=request.json)
        if form.validate():
            service = self.service()
            try:
                new_user = await service.create_user(form)
                return self.success(new_user)
            except ModelUniqueException as e:
                logger.error(f"ModelUniqueException: 用户名必须唯一,{e}")
                return self.fail("用户名必须唯一")
        return self.fail(form.errors)