예제 #1
0
def team_info_user_view(request, team_id):
    '''
    团队内用户的view
    :param request:
    :param team_id:
    :return:
    '''
    user = request.user
    try:
        if request.method == 'GET':
            status, errmsg, team = TeamAPI.get(user=user, team_id=team_id)
            if not status:
                return HttpResponse(errmsg)

            status, errmsg, team_users = TeamAPI.get_team_users(user, team_id)
            if not status:
                return HttpResponse(errmsg)

            pm_list = InternalAPI.get_user_permissions_on_resource(
                user=user, resource_type=RS_TEAM, resource_id=team.id)
            if PM_ADD_TEAM_ROLE not in pm_list:
                pm_add_team_role = False
            else:
                pm_add_team_role = pm_list[PM_ADD_TEAM_ROLE]

            # 不能添加团队角色 相当于不能给团队添加用户 也就是该user是个普通用户
            if not pm_add_team_role:
                team_users = team_users.exclude(
                    roles__name__in=[RO_SYS_ADMIN, RO_ORG_ADMIN])
            team_users_with_role = list()

            for user_item in team_users:
                user_role_on_team = InternalAPI.get_user_roles_on_resource(
                    user=user_item, resource_type=RS_TEAM, resource_id=team_id)
                team_users_with_role.append([user_item, user_role_on_team])

            system_admin = Helper.is_system_admin(user)
            context = {
                'app': app,
                'team': team,
                'pm_add_team_role': pm_add_team_role,
                'team_users': team_users_with_role,
                'system_admin': system_admin
            }
            return render(request, 'organization/team_info_user.html', context)
    except Exception as e:
        return HttpResponse(str(e))
예제 #2
0
def organization_user_view(request, organization_id):
    '''
    组织内用户view
    :param request:
    :param organization_id:
    :return:
    '''
    user = request.user
    try:
        if request.method == 'GET':
            status, errmsg, organization = OrganizationAPI.get(
                user=user, organization_id=organization_id)
            if not status:
                return render(request, 'error.html', {'errmsg': errmsg})
            # 获取组织内该用户有查看权限的用户
            status, errmsg, users = OrganizationAPI.get_all_users(
                user=user, organization_id=organization_id)
            if not status:
                return render(request, 'error.html', {'errmsg': errmsg})
            # if not isinstance(users, list):
            #     users = users.filter(roles__organization=organization)
            #     users = users.distinct()
            # 拥有组织管理员以及以上权限的人
            users_with_oa_role = list()
            # 拥有组织成员权限的人
            users_with_om_role = list()
            for user_item in users:
                org_role = InternalAPI.get_user_roles_on_resource(
                    user=user_item,
                    resource_type=RS_ORG,
                    resource_id=organization_id)
                if org_role.filter(name__in=[RO_SYS_ADMIN, RO_ORG_ADMIN])\
                        .exists():
                    users_with_oa_role.append([user_item, org_role])
                else:
                    users_with_om_role.append([user_item, org_role])
            pm_list = InternalAPI.get_user_permissions_on_resource(
                user=user, resource_type=RS_ORG, resource_id=organization_id)
            if PM_ADD_ORGANIZATION_ROLE not in pm_list:
                pm_add_organization_role = False
            else:
                pm_add_organization_role = pm_list[PM_ADD_ORGANIZATION_ROLE]
            if PM_REMOVE_ORGANIZATION_ROLE not in pm_list:
                pm_remove_organization_role = False
            else:
                pm_remove_organization_role = pm_list[
                    PM_REMOVE_ORGANIZATION_ROLE]
            system_admin = Helper.is_system_admin(user)
            context = {
                'app': app,
                'organization': organization,
                'organization_id': organization_id,
                'users_with_oa_role': users_with_oa_role,
                'users_with_om_role': users_with_om_role,
                'pm_add_organization_role': pm_add_organization_role,
                'pm_remove_organization_role': pm_remove_organization_role,
                'system_admin': system_admin,
            }
            return render(request, 'organization/organization_info_user.html',
                          context)
    except Exception as e:
        return HttpResponse(str(e))