MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / load

Method load

keepercommander/shared_record.py:214–341  ·  view source on GitHub ↗
(self, params, sf_sharing_admins, team_members, role_restricted_members)

Source from the content-addressed store, hash-verified

212 return new_perms
213
214 def load(self, params, sf_sharing_admins, team_members, role_restricted_members):
215 def apply_team_restrictions(team_perms):
216 if not params.enterprise:
217 return team_perms
218
219 restriction_permission_lookup = {
220 'restrict_edit': 'manage_records',
221 'restrict_sharing': 'manage_users',
222 'restrict_view': 'view'
223 }
224
225 teams_cache = params.enterprise.get('teams', {})
226 perms = team_perms.copy()
227 team_info = next((t for t in teams_cache if t.get('team_uid') == perms.get('team_uid')))
228 for restriction, permission in restriction_permission_lookup.items():
229 if team_info.get(restriction):
230 perms[permission] = False
231 return perms
232
233 def apply_role_restrictions():
234 for restricted_target in role_restricted_members:
235 perms = self.permissions.get(restricted_target)
236 perms and perms.apply_restrictions('share')
237
238 def update_sf_shares(share_to, sf_uid):
239 if sf_uid:
240 sf_shares = self.sf_shares.get(sf_uid, set())
241 sf_shares.add(share_to)
242 self.sf_shares[sf_uid] = sf_shares
243
244 def load_user_permissions(u_perms, sf_uid=None, sp_type=None):
245 for up in u_perms:
246 email = up.get('username')
247 update_sf_shares(email, sf_uid)
248 share_admins = sf_sharing_admins.get(sf_uid)
249 is_admin = share_admins and email in share_admins
250 if is_admin:
251 up['editable'] = True
252 up['shareable'] = True
253 up['share_admin'] = True
254 self.merge_user_permissions(email, up, sp_type)
255
256 def load_team_permissions(t_perms, sf_uid):
257 for tp in t_perms:
258 team_uid = tp.get('team_uid')
259 team_name = tp.get('name')
260 update_sf_shares(team_name, sf_uid)
261 tp = apply_team_restrictions(tp)
262 merged = self.merge_team_permissions(team_uid, tp)
263
264 # load team-members' permissions
265 t_users = team_members.get(team_uid, set())
266 ups = [{**tp, 'username': t_username} for t_username in t_users]
267 load_user_permissions(ups, sf_uid, SharePermissions.SharePermissionsType.TEAM_USER)
268 merged.team_members.update({t_username: self.permissions.get(t_username) for t_username in t_users})
269
270 rec_cached = params.record_cache.get(self.uid)
271 shares = rec_cached.get('shares', dict())

Callers 1

__init__Method · 0.95

Calls 2

getMethod · 0.80
debugMethod · 0.45

Tested by

no test coverage detected