From c0ed0edef41dc02d6c71d80e5efa8a056adcb6a8 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 4 Jan 2010 12:29:50 +0000 Subject: [PATCH] SE-182 INSTANCE_ADMIN_OBSERVER role introduced SVN: 14131 --- .../client/web/server/translator/RoleCodeTranslator.java | 5 ++--- .../generic/shared/authorization/annotation/RoleSet.java | 6 ++++-- .../openbis/generic/shared/basic/dto/RoleSetCode.java | 2 +- .../shared/translator/RoleAssignmentTranslator.java | 8 +++++++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/RoleCodeTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/RoleCodeTranslator.java index 5c14f20e72f..286004542d1 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/RoleCodeTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/RoleCodeTranslator.java @@ -37,14 +37,13 @@ public final class RoleCodeTranslator switch (code) { case GROUP_ADMIN: - return RoleCode.ADMIN; - case GROUP_ETL_SERVER: - return RoleCode.ETL_SERVER; case INSTANCE_ADMIN: return RoleCode.ADMIN; + case GROUP_ETL_SERVER: case INSTANCE_ETL_SERVER: return RoleCode.ETL_SERVER; case OBSERVER: + case INSTANCE_ADMIN_OBSERVER: return RoleCode.OBSERVER; case POWER_USER: return RoleCode.POWER_USER; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/authorization/annotation/RoleSet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/authorization/annotation/RoleSet.java index 2c25e3cb137..5cb50272a5a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/authorization/annotation/RoleSet.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/authorization/annotation/RoleSet.java @@ -35,14 +35,16 @@ public enum RoleSet NONE(), INSTANCE_ADMIN(instanceRole(RoleCode.ADMIN)), - + GROUP_ADMIN(INSTANCE_ADMIN, groupRole(RoleCode.ADMIN)), POWER_USER(GROUP_ADMIN, groupRole(RoleCode.POWER_USER)), USER(POWER_USER, groupRole(RoleCode.USER)), - OBSERVER(USER, groupRole(RoleCode.OBSERVER)), + INSTANCE_ADMIN_OBSERVER(USER, instanceRole(RoleCode.OBSERVER)), + + OBSERVER(INSTANCE_ADMIN_OBSERVER, groupRole(RoleCode.OBSERVER)), ETL_SERVER(INSTANCE_ADMIN, groupRole(RoleCode.ETL_SERVER), instanceRole(RoleCode.ETL_SERVER)); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleSetCode.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleSetCode.java index b5ff2559b81..c227b17121d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleSetCode.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleSetCode.java @@ -24,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable; public enum RoleSetCode implements IsSerializable { OBSERVER(true), USER(true), POWER_USER(true), GROUP_ETL_SERVER(true), GROUP_ADMIN(true), - INSTANCE_ETL_SERVER(false), INSTANCE_ADMIN(false); + INSTANCE_ETL_SERVER(false), INSTANCE_ADMIN(false), INSTANCE_ADMIN_OBSERVER(false); private final boolean groupLevel; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/RoleAssignmentTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/RoleAssignmentTranslator.java index 8e00d170318..d8e27b0043a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/RoleAssignmentTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/RoleAssignmentTranslator.java @@ -76,7 +76,13 @@ public final class RoleAssignmentTranslator } break; case OBSERVER: - code = RoleSetCode.OBSERVER; + if (role.getGroup() == null) + { + code = RoleSetCode.INSTANCE_ADMIN_OBSERVER; + } else + { + code = RoleSetCode.OBSERVER; + } break; case USER: code = RoleSetCode.USER; -- GitLab