diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java index 92a925e12c8e37558aac2aa2b81146dd94d3c313..5d7a25b6dca95695c9d20c17a0598027ff7f3be7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingService.java @@ -45,10 +45,13 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.id.metaproject.IMetapr import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BatchRegistrationResult; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Grantee; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; import ch.systemsx.cisd.openbis.generic.shared.util.EntityHelper; import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientService; @@ -339,4 +342,17 @@ public class GeneralInformationChangingService extends server.registerPerson(sessionToken, userID); } + @Override + public void registerSpace(String sessionToken, String spaceCode, String spaceDescription) { + server.registerSpace(sessionToken,spaceCode, spaceDescription); + } + + @Override + public void registerPersonSpaceRole(String sessionToken, String spaceCode, String userID, String roleCode) + { + Grantee grantee = Grantee.createPerson(userID); + SpaceIdentifier spaceIdentifier = new SpaceIdentifier(spaceCode); + server.registerSpaceRole(sessionToken, RoleCode.valueOf(roleCode), spaceIdentifier, grantee); + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingServiceLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingServiceLogger.java index ab10dc8615b4ec3640f73e8aa8e7f2000776a040..1bf5d91e8bd3851b1b3d08734872cd6c331be543 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingServiceLogger.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationChangingServiceLogger.java @@ -23,7 +23,6 @@ import ch.systemsx.cisd.authentication.ISessionManager; import ch.systemsx.cisd.openbis.common.spring.IInvocationLoggerContext; import ch.systemsx.cisd.openbis.generic.shared.AbstractServerLogger; import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationChangingService; -import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Deletion; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DeletionType; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.MetaprojectAssignmentsIds; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.NewVocabularyTerm; @@ -235,7 +234,19 @@ class GeneralInformationChangingServiceLogger extends AbstractServerLogger imple @Override public void registerPerson(String sessionToken, String userID) { - logAccess(sessionToken, "userID", userID); + logAccess(sessionToken, "registerPerson", "userID(%s)", userID); + } + + @Override + public void registerSpace(String sessionToken, String spaceCode, String spaceDescription) + { + logAccess(sessionToken, "registerSpace", "spaceCode(%s), spaceDescription(%s)", spaceCode, spaceDescription); + } + + @Override + public void registerPersonSpaceRole(String sessionToken, String spaceCode, String userID, String roleCode) + { + logAccess(sessionToken, "registerPersonSpaceRole", "spaceCode(%s), userID(%s), roleCode(%s)", spaceCode, userID, roleCode); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js index 2291cfe84064332e06d4ecba11586869d45d4b45..e68f7fffd3929d4a1186a6da564856c8680c00cc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js @@ -1433,6 +1433,37 @@ openbis.prototype.registerPerson = function(userId, action) { }); } +/** + * @see IGeneralInformationChangingService.registerSpace(String, String, String) + * @method + */ +openbis.prototype.registerSpace = function(spaceCode, spaceDescription, action) { + this._internal.ajaxRequest({ + url: this._internal.generalInfoChangingServiceUrl, + data: { "method" : "registerSpace", + "params" : [ this.getSession(), + spaceCode, + spaceDescription ] }, + success: action + }); +} + +/** + * @see IGeneralInformationChangingService.registerPersonSpaceRole(String, String, String, String) + * @method + */ +openbis.prototype.registerPersonSpaceRole = function(spaceCode, userID, roleCode, action) { + this._internal.ajaxRequest({ + url: this._internal.generalInfoChangingServiceUrl, + data: { "method" : "registerPersonSpaceRole", + "params" : [ this.getSession(), + spaceCode, + userID, + roleCode ] }, + success: action + }); +} + /** * ============================================================================ * ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer methods diff --git a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationChangingService.java b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationChangingService.java index 9a12ddf73e45e7fcea26e212e393c10ceb5c2e6a..a6ae70dd8429bb4262ecfe08201fba4493512b94 100644 --- a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationChangingService.java +++ b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationChangingService.java @@ -270,4 +270,23 @@ public interface IGeneralInformationChangingService extends IRpcService */ public void registerPerson(String sessionToken, String userID); + /** + * Registers a space. + * + * @param spaceCode space code + * @param spaceDescription space description + * @since 1.7 + */ + void registerSpace(String sessionToken, String spaceCode, String spaceDescription); + + /** + * Registers a space role for a given person. + * + * @param spaceCode space code + * @param userID user id + * @param roleCode openBIS role + * @since 1.7 + */ + void registerPersonSpaceRole(String sessionToken, String spaceCode, String userID, String roleCode); + }