Author: glandais Date: 2008-03-20 16:37:13 +0000 (Thu, 20 Mar 2008) New Revision: 1422 Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java Log: Permission rules Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-03-20 16:36:31 UTC (rev 1421) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-03-20 16:37:13 UTC (rev 1422) @@ -96,14 +96,26 @@ if (user.isSuperAdmin()) { p = new Permission(); p.setOwner(true); + p.setCanAdmin(true); + p.setCanRead(true); + p.setCanWrite(true); } else { p = new Permission(); - p.setOwner(false); - p.setCanAdmin(false); - p.setCanRead(false); - p.setCanWrite(false); List<Permission> permissions = daoPermission.getPermissions(businessId); + + if (permissions.size() == 0) { + p.setOwner(true); + p.setCanAdmin(true); + p.setCanRead(true); + p.setCanWrite(true); + } else { + p.setOwner(false); + p.setCanAdmin(false); + p.setCanRead(false); + p.setCanWrite(false); + } + for (Permission permission : permissions) { boolean appliesTo = appliesTo(user, permission.getActor()); if (appliesTo) { @@ -113,12 +125,19 @@ p.setCanWrite(p.isCanWrite() || permission.isCanWrite()); } } - } - if (p.isOwner()) { - p.setCanAdmin(true); - p.setCanRead(true); - p.setCanWrite(true); + if (p.isCanWrite()) { + p.setCanRead(true); + } + if (p.isCanAdmin()) { + p.setCanRead(true); + p.setCanWrite(true); + } + if (p.isOwner()) { + p.setCanAdmin(true); + p.setCanRead(true); + p.setCanWrite(true); + } } return p;
participants (1)
-
glandais@users.labs.libre-entreprise.org