diff options
author | Eike Stepper | 2021-11-08 15:48:51 +0000 |
---|---|---|
committer | Eike Stepper | 2021-11-08 15:48:51 +0000 |
commit | d31b3b3fd18ddd9203bff503006ce9856a3848b1 (patch) | |
tree | 4c9214dd1bf619e7765a440f74541e436cc5f4f5 /plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf | |
parent | 0d42e7480dc0b817bceb56701e6df9be5b4c5b1e (diff) | |
download | cdo-d31b3b3fd18ddd9203bff503006ce9856a3848b1.tar.gz cdo-d31b3b3fd18ddd9203bff503006ce9856a3848b1.tar.xz cdo-d31b3b3fd18ddd9203bff503006ce9856a3848b1.zip |
[577114] Give clients a facility to let the repository authorize arbitrary operations
https://bugs.eclipse.org/bugs/show_bug.cgi?id=577114
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java | 32 | ||||
-rw-r--r-- | plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/CDORenameContext.java | 8 | ||||
-rw-r--r-- | plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/util/CoreOperations.java (renamed from plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/util/AuthorizableOperations.java) | 32 |
3 files changed, 56 insertions, 16 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java index b919de07ab..22d1d2b23f 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java @@ -15,6 +15,7 @@ import org.eclipse.emf.cdo.common.protocol.CDODataOutput; import org.eclipse.emf.cdo.common.util.CDOClassNotFoundException; import org.eclipse.emf.cdo.common.util.CDOPackageNotFoundException; +import org.eclipse.net4j.util.CheckUtil; import org.eclipse.net4j.util.collection.Closeable; import org.eclipse.net4j.util.options.IOptions; import org.eclipse.net4j.util.options.IOptionsContainer; @@ -29,6 +30,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; /** * Abstracts the information about CDO sessions that is common to both client and server side. @@ -217,6 +219,7 @@ public interface CDOCommonSession extends IAdaptable, IUserAware, IOptionsContai public AuthorizableOperation(String id) { + CheckUtil.checkArg(id, "id"); this.id = id; } @@ -277,5 +280,34 @@ public interface CDOCommonSession extends IAdaptable, IUserAware, IOptionsContai out.writeCDORevisionOrPrimitiveOrClassifier(entry.getValue()); } } + + @Override + public int hashCode() + { + return Objects.hash(id); + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + { + return true; + } + + if (!(obj instanceof AuthorizableOperation)) + { + return false; + } + + AuthorizableOperation other = (AuthorizableOperation)obj; + return Objects.equals(id, other.id); + } + + @Override + public String toString() + { + return "AuthorizableOperation[id=" + id + ", parameters=" + parameters + "]"; + } } } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/CDORenameContext.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/CDORenameContext.java index af7f818a21..c91a6d69fd 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/CDORenameContext.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/CDORenameContext.java @@ -23,4 +23,12 @@ public interface CDORenameContext public void setName(String name); public String validateName(String name); + + /** + * @since 4.15 + */ + public interface WithElement extends CDORenameContext + { + public Object getElement(); + } } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/util/AuthorizableOperations.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/util/CoreOperations.java index b9cdf9ed50..d4f2d17b56 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/util/AuthorizableOperations.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/util/CoreOperations.java @@ -16,29 +16,29 @@ import org.eclipse.emf.cdo.common.CDOCommonSession.AuthorizableOperation; * @author Eike Stepper * @since 4.15 */ -public final class AuthorizableOperations +public final class CoreOperations { - public static final String ID_BRANCH_CREATE = "org.eclipse.emf.cdo.branch.Create"; + public static final String ID_CREATE_BRANCH = "org.eclipse.emf.cdo.CreateBranch"; - public static final String ID_BRANCH_RENAME = "org.eclipse.emf.cdo.branch.Rename"; + public static final String ID_RENAME_BRANCH = "org.eclipse.emf.cdo.RenameBranch"; - public static final String ID_BRANCH_DELETE = "org.eclipse.emf.cdo.branch.Delete"; + public static final String ID_DELETE_BRANCH = "org.eclipse.emf.cdo.DeleteBranch"; - public static final String ID_TAG_CREATE = "org.eclipse.emf.cdo.tag.Create"; + public static final String ID_CREATE_TAG = "org.eclipse.emf.cdo.CreateTag"; - public static final String ID_TAG_RENAME = "org.eclipse.emf.cdo.tag.Rename"; + public static final String ID_RENAME_TAG = "org.eclipse.emf.cdo.RenameTag"; - public static final String ID_TAG_MOVE = "org.eclipse.emf.cdo.tag.Move"; + public static final String ID_MOVE_TAG = "org.eclipse.emf.cdo.MoveTag"; - public static final String ID_TAG_DELETE = "org.eclipse.emf.cdo.tag.Delete"; + public static final String ID_DELETE_TAG = "org.eclipse.emf.cdo.DeleteTag"; - private AuthorizableOperations() + private CoreOperations() { } public static AuthorizableOperation createBranch(int branchID, String name, int baseBranchID, long baseTimeStamp) { - return new AuthorizableOperation(ID_BRANCH_CREATE) // + return new AuthorizableOperation(ID_CREATE_BRANCH) // .parameter("branchID", branchID) // .parameter("name", name) // .parameter("baseBranchID", baseBranchID) // @@ -47,20 +47,20 @@ public final class AuthorizableOperations public static AuthorizableOperation renameBranch(int branchID, String newName) { - return new AuthorizableOperation(ID_BRANCH_RENAME) // + return new AuthorizableOperation(ID_RENAME_BRANCH) // .parameter("branchID", branchID) // .parameter("newName", newName); } public static AuthorizableOperation deleteBranch(int branchID) { - return new AuthorizableOperation(ID_BRANCH_DELETE) // + return new AuthorizableOperation(ID_DELETE_BRANCH) // .parameter("branchID", branchID); } public static AuthorizableOperation createTag(String name, int branchID, long timeStamp) { - return new AuthorizableOperation(ID_TAG_CREATE) // + return new AuthorizableOperation(ID_CREATE_TAG) // .parameter("name", name) // .parameter("branchID", branchID) // .parameter("timeStamp", timeStamp); @@ -68,14 +68,14 @@ public final class AuthorizableOperations public static AuthorizableOperation renameTag(String oldName, String newName) { - return new AuthorizableOperation(ID_TAG_RENAME) // + return new AuthorizableOperation(ID_RENAME_TAG) // .parameter("oldName", oldName) // .parameter("newName", newName); } public static AuthorizableOperation moveTag(String name, int branchID, long timeStamp) { - return new AuthorizableOperation(ID_TAG_MOVE) // + return new AuthorizableOperation(ID_MOVE_TAG) // .parameter("name", name) // .parameter("branchID", branchID) // .parameter("timeStamp", timeStamp); @@ -83,7 +83,7 @@ public final class AuthorizableOperations public static AuthorizableOperation deleteTag(String name) { - return new AuthorizableOperation(ID_TAG_DELETE) // + return new AuthorizableOperation(ID_DELETE_TAG) // .parameter("name", name); } } |