@Override public boolean equals( final Object o ) { return ( ( o instanceof SimpleUser ) ? userName.equals( ( (SimpleUser) o ).getName() ) : false ); }
/** * Converts from List<IPentahoAclEntry> to Map<IPermissionRecipient, IPermissionMask>. */ @SuppressWarnings( "deprecation" ) protected Map<IPermissionRecipient, IPermissionMask> transformEntries( List<IPentahoAclEntry> entriesFromHolder ) { Map<IPermissionRecipient, IPermissionMask> permissionsMap = new LinkedHashMap<IPermissionRecipient, IPermissionMask>(); for ( IPentahoAclEntry pentahoAclEntry : entriesFromHolder ) { IPermissionRecipient permissionRecipient = null; if ( pentahoAclEntry.getRecipient() instanceof SimpleGrantedAuthority ) { SimpleGrantedAuthority grantedAuthorityImpl = (SimpleGrantedAuthority) pentahoAclEntry.getRecipient(); permissionRecipient = new SimpleRole( grantedAuthorityImpl.toString() ); } else if ( pentahoAclEntry.getRecipient() instanceof SimpleRole ) { permissionRecipient = new SimpleRole( (String) pentahoAclEntry.getRecipient() ); } else { permissionRecipient = new SimpleUser( (String) pentahoAclEntry.getRecipient() ); } IPermissionMask permissionMask = new SimplePermissionMask( pentahoAclEntry.getMask() ); permissionsMap.put( permissionRecipient, permissionMask ); } return permissionsMap; }
@Override public Void call() throws Exception { RepositoryFile testFile = new RepositoryFile( "Test Folder", null, null ); //$NON-NLS-1$ Map<IPermissionRecipient, IPermissionMask> perms = new LinkedHashMap<IPermissionRecipient, IPermissionMask>(); perms.put( new SimpleUser( "suzy" ), new SimplePermissionMask( IPentahoAclEntry.PERM_EXECUTE ) ); perms.put( new SimpleRole( "ROLE_POWER_USER" ), new SimplePermissionMask( IPentahoAclEntry.PERM_SUBSCRIBE ) ); SpringSecurityPermissionMgr.instance().setPermissions( perms, testFile ); PentahoBasicAclVoter voter = new PentahoBasicAclVoterForTesting( new MockAuthentication( "suzy", Arrays.asList( new GrantedAuthority[] { new SimpleGrantedAuthority( "ROLE_AUTHENTICATED" ), new SimpleGrantedAuthority( "ROLE_POWER_USER" ) } ) ) ); assertTrue( voter.hasAccess( PentahoSessionHolder.getSession(), testFile, IPentahoAclEntry.PERM_EXECUTE ) ); assertTrue( voter.hasAccess( PentahoSessionHolder.getSession(), testFile, IPentahoAclEntry.PERM_SUBSCRIBE ) ); assertFalse( voter.hasAccess( PentahoSessionHolder.getSession(), testFile, IPentahoAclEntry.PERM_ADMINISTRATION ) ); PentahoAclEntry entry = voter.getEffectiveAcl( PentahoSessionHolder.getSession(), testFile ); assertNotNull( entry ); assertEquals( entry.printPermissionsBlock(), "XS----" ); //$NON-NLS-1$ return null; }
@Override public Void call() throws Exception { RepositoryFile testFile = new RepositoryFile( "Test Folder", null, null ); //$NON-NLS-1$ Map<IPermissionRecipient, IPermissionMask> perms = new LinkedHashMap<IPermissionRecipient, IPermissionMask>(); perms.put( new SimpleUser( "suzy" ), new SimplePermissionMask( IPentahoAclEntry.PERM_NOTHING ) ); perms.put( new SimpleRole( "ROLE_POWER_USER" ), new SimplePermissionMask( IPentahoAclEntry.PERM_FULL_CONTROL ) ); SpringSecurityPermissionMgr.instance().getPermissions( testFile ); // Now, the stage is set. We should be able to double-check that suzy // has no access to the testFile. PentahoUserOverridesVoter voter = new PentahoUserOverridesVoter(); assertNotNull( voter ); assertFalse( voter.hasAccess( PentahoSessionHolder.getSession(), testFile, IPentahoAclEntry.PERM_EXECUTE ) ); return null; }