Exemplo n.º 1
0
    def update_role_settings(self):
        assignments = []
        for principal, roles in self.generate_role_settings().items():
            assignments.append(ProtectDossierRoleAssignment(principal, roles))

        if assignments:
            manager = RoleAssignmentManager(self.context)
            manager.reset(assignments)
Exemplo n.º 2
0
    def update_role_settings(self):
        assignments = []
        for principal, roles in self.generate_role_settings().items():
            assignments.append(ProtectDossierRoleAssignment(principal, roles))

        if assignments:
            manager = RoleAssignmentManager(self.context)
            manager.reset(assignments)
Exemplo n.º 3
0
    def _update_role_settings(self, new_settings, reindex=True):
        """Replaced because we need our own permission manager stuff.
        """
        assignments = []
        principals_to_clear = []

        for s in new_settings:
            principal = s['id']
            selected_roles = frozenset(s['roles'])
            if not selected_roles:
                principals_to_clear.append(principal)
                continue

            assignments.append(SharingRoleAssignment(principal, selected_roles))

        manager = RoleAssignmentManager(self.context)
        if assignments:
            manager.reset(assignments)
        else:
            manager.clear_by_cause_and_principals(
                ASSIGNMENT_VIA_SHARING, principals_to_clear)
Exemplo n.º 4
0
    def _update_role_settings(self, new_settings, reindex=True):
        """Replaced because we need our own permission manager stuff.
        """
        assignments = []
        principals_to_clear = []

        for s in new_settings:
            principal = s['id']
            selected_roles = frozenset(s['roles'])
            if not selected_roles:
                principals_to_clear.append(principal)
                continue

            assignments.append(SharingRoleAssignment(principal,
                                                     selected_roles))

        manager = RoleAssignmentManager(self.context)
        if assignments:
            manager.reset(assignments)
        else:
            manager.clear_by_cause_and_principals(ASSIGNMENT_VIA_SHARING,
                                                  principals_to_clear)