diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java b/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java index 1647e47b3ad..747b284672b 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/impl/SecurityServiceImpl.java @@ -112,6 +112,7 @@ import com.sap.sse.security.operations.CreateUserOperation; import com.sap.sse.security.operations.DeleteRoleDefinitionOperation; import com.sap.sse.security.operations.DeleteUserGroupOperation; import com.sap.sse.security.operations.PutRoleDefinitionToUserGroupOperation; +import com.sap.sse.security.operations.RemovePermissionForUserOperation; import com.sap.sse.security.operations.RemoveRoleDefinitionFromUserGroupOperation; import com.sap.sse.security.operations.RemoveRoleFromUserOperation; import com.sap.sse.security.operations.RemoveUserFromUserGroupOperation; @@ -1192,7 +1193,7 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat @Override public void removePermissionFromUser(String username, WildcardPermission permissionToRemove) { - apply(s->s.internalRemovePermissionForUser(username, permissionToRemove)); + apply(new RemovePermissionForUserOperation(username, permissionToRemove)); } @Override diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/operations/RemovePermissionForUserOperation.java b/java/com.sap.sse.security/src/com/sap/sse/security/operations/RemovePermissionForUserOperation.java new file mode 100644 index 00000000000..f05612db025 --- /dev/null +++ b/java/com.sap.sse.security/src/com/sap/sse/security/operations/RemovePermissionForUserOperation.java @@ -0,0 +1,23 @@ +package com.sap.sse.security.operations; + +import com.sap.sse.replication.OperationWithResult; +import com.sap.sse.security.impl.ReplicableSecurityService; +import com.sap.sse.security.shared.WildcardPermission; + +public class RemovePermissionForUserOperation implements OperationWithResult { + private static final long serialVersionUID = 1L; + + protected final String username; + protected final WildcardPermission permissionToRemove; + + public RemovePermissionForUserOperation(String username, WildcardPermission permissionToRemove) { + this.username = username; + this.permissionToRemove = permissionToRemove; + } + + @Override + public Void internalApplyTo(ReplicableSecurityService toState) throws Exception { + toState.internalRemovePermissionForUser(username, permissionToRemove); + return null; + } +}