MCPcopy
hub / github.com/jumpserver/jumpserver / set_users_orgs_roles

Method set_users_orgs_roles

apps/users/api/user.py:112–127  ·  view source on GitHub ↗
(queryset)

Source from the content-addressed store, hash-verified

110
111 @staticmethod
112 def set_users_orgs_roles(queryset):
113 user_ids = [u.id for u in queryset]
114 rbs = RoleBinding.objects_raw.filter(
115 user__in=user_ids, scope='org'
116 ).prefetch_related('user', 'role', 'org')
117 user_rbs_mapper = defaultdict(set)
118 for rb in rbs:
119 user_rbs_mapper[rb.user_id].add(rb)
120
121 for u in queryset:
122 user_rbs = user_rbs_mapper[u.id]
123 orgs_roles = defaultdict(set)
124 for rb in user_rbs:
125 orgs_roles[rb.org_name].add(rb.role.display_name)
126 setattr(u, 'orgs_roles', orgs_roles)
127 return queryset
128
129 def perform_create(self, serializer):
130 users = serializer.save()

Callers 1

get_serializerMethod · 0.95

Calls 2

addMethod · 0.80
filterMethod · 0.45

Tested by

no test coverage detected