Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2021-11-08 15:48:51 +0000
committerEike Stepper2021-11-08 15:48:51 +0000
commitd31b3b3fd18ddd9203bff503006ce9856a3848b1 (patch)
tree4c9214dd1bf619e7765a440f74541e436cc5f4f5 /plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf
parent0d42e7480dc0b817bceb56701e6df9be5b4c5b1e (diff)
downloadcdo-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.java32
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/util/CDORenameContext.java8
-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);
}
}

Back to the top