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))
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))