コード例 #1
0
ファイル: views.py プロジェクト: wang-shun/console
    def post(self, request, *args, **kwargs):
        request_data = request.data.get('data', {})
        validator = CreateDepartmentMembersValidator(data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))

        department_id = validator.validated_data.get('department_id')
        member_type = validator.validated_data.get('member_type')

        validator = self.get_create_member_validator(member_type)(
            data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))

        member_info = validator.validated_data.get('member_info')

        member, error = AccountService.create(**member_info)
        if error:
            return Response(
                console_response(code=1, ret_set={},
                                 msg='成员创建失败' + str(error)))
        elif DepartmentMemberService.join([member.user], department_id):
            # 创建成功 就加入到指定部门
            if member.type in AccountType.FINANCE_TYPES:
                permission_group_id_list = validator.validated_data.get(
                    'permission_group_id_list')
                new_member = AccountService.get_by_owner(member.user)
                groups = PermissionGroupService.gets(permission_group_id_list)
                count = UserPermissionService.append_groups(new_member, groups)
                ret_set = DepartmentMemberService.to_dict(new_member)
                if count == len(permission_group_id_list):
                    # create_payload = {
                    #     "owner": member.user.username,
                    #     "zone": request_data.get("zone", "bj")
                    # }
                    # create_resp = create_base_net(create_payload)
                    # if create_resp.get("ret_code"):
                    #     return Response(console_response(code=1, msg="创建成员子网失败"))
                    # ret_set["sub_net"] = create_resp.get("ret_set")[0]
                    #
                    return Response(console_response(ret_set=ret_set))
                else:
                    return Response(
                        console_response(code=1,
                                         ret_set=ret_set,
                                         msg='成员初始化权限失败'))
            elif member.type in AccountType.PORTAL_TYPES:
                new_member = AccountService.get_by_owner(member.user)
                ret_set = DepartmentMemberService.to_dict(new_member)
                return Response(console_response(ret_set=ret_set))

        else:
            AccountService.delete_by_username(member.user.username,
                                              really_delete=True)
            return Response(
                console_response(code=1, ret_set={}, msg='成员加入部门失败'))
コード例 #2
0
ファイル: views.py プロジェクト: wang-shun/console
    def post(self, request, *args, **kwargs):
        request_data = request.data.get('data', {})
        validator = DescribeDepartmentMemberValidator(data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))

        department_id = validator.validated_data.get('department_id')
        page_num = validator.validated_data.get('page_num')
        page_size = validator.validated_data.get('page_size')

        members = DepartmentService.get_members(department_id)

        paged_data = paging(members, page_num, page_size)
        page_num = paged_data['page_num']
        page_size = paged_data['page_size']
        total_page = paged_data['total_page']
        total_item = paged_data['total_item']
        member_list = []
        for member in paged_data['data']:
            member_list.append(DepartmentMemberService.to_dict(member))

        ret_set = dict(page_num=page_num,
                       page_size=page_size,
                       total_page=total_page,
                       total_item=total_item,
                       member_list=member_list)

        return Response(console_response(ret_set=ret_set))
コード例 #3
0
ファイル: views.py プロジェクト: wang-shun/console
    def post(self, request, *args, **kwargs):
        request_data = request.data.get('data', {})
        validator = CreateDepartmentMembersValidator(data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))

        department_id = validator.validated_data.get('department_id')
        member_type = validator.validated_data.get('member_type')

        validator = self.get_create_member_validator(member_type)(
            data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))

        member_info = validator.validated_data.get('member_info')
        member, error = AccountService.create(**member_info)
        if error:
            return Response(
                console_response(code=1, ret_set={},
                                 msg='成员创建失败' + str(error)))
        elif DepartmentMemberService.join([member.user], department_id):
            # 创建成功 就加入到指定部门
            new_member = AccountService.get_by_owner(member.user)
            ret_set = DepartmentMemberService.to_dict(new_member)
            return Response(console_response(ret_set=ret_set))

        else:
            AccountService.delete_by_username(member.user.username,
                                              really_delete=True)
            return Response(
                console_response(code=1, ret_set={}, msg='成员加入部门失败'))
コード例 #4
0
ファイル: views.py プロジェクト: wang-shun/console
    def post(self, request, *args, **kwargs):
        request_data = request.data.get('data', {})
        validator = DescribeDepartmentMemberDetailValidator(data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))

        member_id = validator.validated_data.get('member_id')

        member = DepartmentMemberService.get(member_id)
        member_info = DepartmentMemberService.to_dict(member, detail=True)

        return Response(console_response(ret_set=member_info))
コード例 #5
0
ファイル: views.py プロジェクト: wang-shun/console
    def post(self, request, *args, **kwargs):
        request_data = request.data.get('data', {})
        validator = DisableDepartmentMemberValidator(data=request_data)
        if not validator.is_valid():
            return Response(console_response(code=1, msg=validator.errors))
        member_list = validator.validated_data.get('member_list')

        members = DepartmentMemberService.disable(member_list)
        members_info = []
        for member in members:
            members_info.append(DepartmentMemberService.to_dict(member))

        return Response(console_response(ret_set=members_info))