@Override public boolean isPermitted(ParticipantId participant, Capability capability) { Role role = getRole(participant); return role.isPermitted(capability); }
@Override public void assign(ParticipantId participant, Role role) { Preconditions.checkNotNull(role, "Can't assign null"); Role currentRole = getRole(participant); if (!currentRole.equals(role)) { BasicAssignment assignment = assignments.get(participant.getAddress()); if (assignment == null) { assignment = new BasicAssignment(participant, role); assignments.put(participant.getAddress(), assignment); } else { assignment.setRole(role); } fireOnChanged(); } } }
public void testConstructFromExistingRoles() { ObservableRoles.Listener listener = mock(ObservableRoles.Listener.class); BasicObservableRoles permissions = new BasicObservableRoles(); permissions.assign(p("public@a.gwave.com"), Role.READ_ONLY); permissions.assign(p("tirsen@google.com"), Role.READ_ONLY); BasicObservableRoles copy = new BasicObservableRoles(permissions.getAssignments()); copy.assign(p("whitelaw@example.com"), Role.READ_ONLY); assertEquals(copy.getRole(p("tirsen@google.com")), permissions.getRole(p("tirsen@google.com"))); assertEquals(copy.getRole(p("public@a.gwave.com")), permissions.getRole(p("public@a.gwave.com"))); assertEquals(copy.getRole(p("whitelaw@example.com")), Role.READ_ONLY); assertEquals(permissions.getRole(p("whitelaw@example.com")), Role.FULL); } }
public void testConstructFromExistingRoles() { ObservableRoles.Listener listener = mock(ObservableRoles.Listener.class); BasicObservableRoles permissions = new BasicObservableRoles(); permissions.assign(p("public@a.gwave.com"), Role.READ_ONLY); permissions.assign(p("tirsen@google.com"), Role.READ_ONLY); BasicObservableRoles copy = new BasicObservableRoles(permissions.getAssignments()); copy.assign(p("whitelaw@example.com"), Role.READ_ONLY); assertEquals(copy.getRole(p("tirsen@google.com")), permissions.getRole(p("tirsen@google.com"))); assertEquals(copy.getRole(p("public@a.gwave.com")), permissions.getRole(p("public@a.gwave.com"))); assertEquals(copy.getRole(p("whitelaw@example.com")), Role.READ_ONLY); assertEquals(permissions.getRole(p("whitelaw@example.com")), Role.FULL); } }