bug5821: added first statistic about preferences

This commit is contained in:
Axel Uhl committed 2023-02-21 18:06:59 +01:00
1 parent c7147b808b
commit fd257883a4
22 files changed
+344 -137

No files matched your search

@@ -197,16 +197,16 @@ public interface DataRetrieverChainDefinition<DataSourceType, DataType> {
* Combines {@link #startWith(Class, Class, String)} and {@link #endWith(Class, Class, Class, String)} by marking this
* chain as complete with only this single step.
*/
<ResultType> void startAndEndWith(Class<? extends Processor<DataSourceType, ResultType>> retrieverType,
Class<ResultType> retrievedDataType, String retrievedDataTypeMessageKey);
void startAndEndWith(Class<? extends Processor<DataSourceType, DataType>> retrieverType,
Class<DataType> retrievedDataType, String retrievedDataTypeMessageKey);
/**
* Combines {@link #startWith(Class, Class, Class, SerializableSettings, String) and
* {@link #endWith(Class, Class, Class, Class, SerializableSettings, String) by marking this chain as complete with
* only this single step.
*/
<ResultType, SettingsType extends SerializableSettings> void startAndEndWith(
Class<? extends Processor<DataSourceType, ResultType>> retrieverType, Class<ResultType> retrievedDataType,
<SettingsType extends SerializableSettings> void startAndEndWith(
Class<? extends Processor<DataSourceType, DataType>> retrieverType, Class<DataType> retrievedDataType,
Class<SettingsType> settingsType, SettingsType defaultSettings, String retrievedDataTypeMessageKey);
@@ -51,14 +51,14 @@ public class SimpleDataRetrieverChainDefinition<DataSourceType, DataType> implem
}
@Override
public <ResultType> void startAndEndWith(Class<? extends Processor<DataSourceType, ResultType>> retrieverType,
Class<ResultType> retrievedDataType, String retrievedDataTypeMessageKey) {
public void startAndEndWith(Class<? extends Processor<DataSourceType, DataType>> retrieverType,
Class<DataType> retrievedDataType, String retrievedDataTypeMessageKey) {
startAndEndWith(retrieverType, retrievedDataType, /* settings type */ null, /* default settings */ null, retrievedDataTypeMessageKey);
}
@Override
public <ResultType, SettingsType extends SerializableSettings> void startAndEndWith(Class<? extends Processor<DataSourceType, ResultType>> retrieverType,
Class<ResultType> retrievedDataType, Class<SettingsType> settingsType, SettingsType defaultSettings,
public <SettingsType extends SerializableSettings> void startAndEndWith(Class<? extends Processor<DataSourceType, DataType>> retrieverType,
Class<DataType> retrievedDataType, Class<SettingsType> settingsType, SettingsType defaultSettings,
String retrievedDataTypeMessageKey) {
startWith(retrieverType, retrievedDataType, settingsType, defaultSettings, retrievedDataTypeMessageKey);
isComplete = true;
@@ -1,11 +1,12 @@
UserGroups=User Groups
UserGroup=User Group
UserInUserGroup=User in User Group
UsersInUserGroup=Users in User Group
SecurityChainForUsers=Users
SecurityChainForUserGroups=User Groups
RoleInUserGroup=Role in User Group
RoleOfUserGroup=Role of User Group
RolesOfUserGroup=Role of User Group
UserGroupName=User Group Name
User=User
Users=Users
RoleOfUserGroupName=Name of Role Implied by User Group
RoleOfUserGroupForAll=Applies for all Users
NumberOfPermissions=Number of Permissions
@@ -19,4 +20,8 @@ PermissionString=Permission
PermissionTypes=Permission for Types
PermissionActions=Permission for Actions
PermissionObjects=Permission for Objects
PermissionsOfUserInUserGroup=Permissions of User in User Groups
PermissionsOfUsersInUserGroup=Permissions of Users in User Groups
SecurityChainForUsers=Users
NumberOfUsersInUserGroup=Number of users in User Group
ImpliesRoles=Implies Role(s)
NumberOfPreferences=Number of Preferences
@@ -1,11 +1,12 @@
UserGroups=Benutzergruppen
UserGroup=Benutzergruppe
UserInUserGroup=Benutzer in Benutzergruppe
UsersInUserGroup=Benutzer in Benutzergruppe
SecurityChainForUsers=Benutzer
SecurityChainForUserGroups=Benutzergruppen
RoleInUserGroup=Rolle in Benutzergruppe
RoleOfUserGroup=Rolle der Benutzergruppe
RolesOfUserGroup=Rolle der Benutzergruppe
UserGroupName=Name der Benutzergruppe
User=Benutzer
Users=Benutzer
RoleOfUserGroupName=Name der von der Benutzergruppe implizierten Rolle
RoleOfUserGroupForAll=Gilt für alle Benutzer
NumberOfPermissions=Anzahl der Berechtigungen
@@ -19,4 +20,8 @@ PermissionString=Berechtigung
PermissionTypes=Berechtigung für Typen
PermissionActions=Berechtigung für Aktionen
PermissionObjects=Berechtigung für Objekte
PermissionsOfUserInUserGroup=Berechtigungen für Benutzer in Benutzergruppen
PermissionsOfUsersInUserGroup=Berechtigungen für Benutzer in Benutzergruppen
SecurityChainForUsers=Benutzer
NumberOfUsersInUserGroup=Anzahl Benutzer in Benutzergruppe
ImpliesRoles=Impliziert Rolle(n)
NumberOfPreferences=Anzahl Präferenzen
@@ -13,8 +13,10 @@ import com.sap.sse.datamining.components.DataRetrieverChainDefinition;
import com.sap.sse.datamining.impl.AbstractDataMiningActivator;
import com.sap.sse.i18n.ResourceBundleStringMessages;
import com.sap.sse.i18n.impl.ResourceBundleStringMessagesImpl;
import com.sap.sse.security.datamining.data.HasPermissionsOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasPermissionOfUserContext;
import com.sap.sse.security.datamining.data.HasPermissionOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasRoleOfUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.datamining.data.HasUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserInUserGroupContext;
import com.sap.sse.security.shared.impl.User;
@@ -73,7 +75,9 @@ public class Activator extends AbstractDataMiningActivator {
internalClasses.add(HasUserGroupContext.class);
internalClasses.add(HasUserInUserGroupContext.class);
internalClasses.add(HasRoleOfUserGroupContext.class);
internalClasses.add(HasPermissionsOfUserInUserGroupContext.class);
internalClasses.add(HasPermissionOfUserInUserGroupContext.class);
internalClasses.add(HasPermissionOfUserContext.class);
internalClasses.add(HasUserContext.class);
return internalClasses;
}
@@ -10,8 +10,10 @@ import com.sap.sse.security.datamining.components.SecurityPermissionsOfUserInUse
import com.sap.sse.security.datamining.components.SecurityRoleOfUserGroupRetrievalProcessor;
import com.sap.sse.security.datamining.components.SecurityUserGroupRetrievalProcessor;
import com.sap.sse.security.datamining.components.SecurityUserInUserGroupRetrievalProcessor;
import com.sap.sse.security.datamining.data.HasPermissionsOfUserInUserGroupContext;
import com.sap.sse.security.datamining.components.SecurityUserRetrievalProcessor;
import com.sap.sse.security.datamining.data.HasPermissionOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasRoleOfUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.datamining.data.HasUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserInUserGroupContext;
@@ -31,23 +33,28 @@ public class SecurityDataRetrievalChainDefinitions {
DataRetrieverChainDefinition<SecurityService, HasUserGroupContext> userGroupRetriever = new SimpleDataRetrieverChainDefinition<>(
SecurityService.class, HasUserGroupContext.class, "SecurityChainForUserGroups");
userGroupRetriever.startAndEndWith(SecurityUserGroupRetrievalProcessor.class, HasUserGroupContext.class,
"UserGroup");
"UserGroups");
dataRetrieverChainDefinitions.add(userGroupRetriever);
DataRetrieverChainDefinition<SecurityService, HasUserContext> userRetriever = new SimpleDataRetrieverChainDefinition<>(
SecurityService.class, HasUserContext.class, "SecurityChainForUsers");
userRetriever.startAndEndWith(SecurityUserRetrievalProcessor.class, HasUserContext.class,
"Users");
dataRetrieverChainDefinitions.add(userRetriever);
DataRetrieverChainDefinition<SecurityService, HasUserInUserGroupContext> userInUserGroupRetriever = new SimpleDataRetrieverChainDefinition<>(
userGroupRetriever, HasUserInUserGroupContext.class, "UserInUserGroup");
userGroupRetriever, HasUserInUserGroupContext.class, "UsersInUserGroup");
userInUserGroupRetriever.endWith(SecurityUserGroupRetrievalProcessor.class,
SecurityUserInUserGroupRetrievalProcessor.class, HasUserInUserGroupContext.class, "UserInUserGroup");
SecurityUserInUserGroupRetrievalProcessor.class, HasUserInUserGroupContext.class, "UsersInUserGroup");
dataRetrieverChainDefinitions.add(userInUserGroupRetriever);
DataRetrieverChainDefinition<SecurityService, HasPermissionsOfUserInUserGroupContext> permissionsOfUserInUserGroupRetriever = new SimpleDataRetrieverChainDefinition<>(
userInUserGroupRetriever, HasPermissionsOfUserInUserGroupContext.class, "PermissionsOfUserInUserGroup");
DataRetrieverChainDefinition<SecurityService, HasPermissionOfUserInUserGroupContext> permissionsOfUserInUserGroupRetriever = new SimpleDataRetrieverChainDefinition<>(
userInUserGroupRetriever, HasPermissionOfUserInUserGroupContext.class, "PermissionsOfUsersInUserGroup");
permissionsOfUserInUserGroupRetriever.endWith(SecurityUserInUserGroupRetrievalProcessor.class,
SecurityPermissionsOfUserInUserGroupRetrievalProcessor.class,
HasPermissionsOfUserInUserGroupContext.class, "PermissionsOfUserInUserGroup");
HasPermissionOfUserInUserGroupContext.class, "PermissionsOfUsersInUserGroup");
dataRetrieverChainDefinitions.add(permissionsOfUserInUserGroupRetriever);
DataRetrieverChainDefinition<SecurityService, HasRoleOfUserGroupContext> roleOfUserGroupRetriever = new SimpleDataRetrieverChainDefinition<>(
userGroupRetriever, HasRoleOfUserGroupContext.class, "RoleOfUserGroup");
userGroupRetriever, HasRoleOfUserGroupContext.class, "RolesOfUserGroup");
roleOfUserGroupRetriever.endWith(SecurityUserGroupRetrievalProcessor.class,
SecurityRoleOfUserGroupRetrievalProcessor.class, HasRoleOfUserGroupContext.class, "RoleInUserGroup");
SecurityRoleOfUserGroupRetrievalProcessor.class, HasRoleOfUserGroupContext.class, "RolesOfUserGroup");
dataRetrieverChainDefinitions.add(roleOfUserGroupRetriever);
}
@@ -0,0 +1,37 @@
package com.sap.sse.security.datamining.components;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.datamining.data.HasPermissionContext;
import com.sap.sse.security.shared.WildcardPermission;
public abstract class AbstractSecurityPermissionsOfUserRetrievalProcessor<HUG extends HasUserContext, PWC extends HasPermissionContext>
extends AbstractRetrievalProcessor<HUG, PWC> {
public AbstractSecurityPermissionsOfUserRetrievalProcessor(ExecutorService executor, Class<HUG> hasUserContextSpecialization,
Class<PWC> permissionWithContextSpecialization,
Collection<Processor<PWC, ?>> resultReceivers, int retrievalLevel,
String retrievedDataTypeMessageKey) {
super(hasUserContextSpecialization, permissionWithContextSpecialization, executor, resultReceivers,
retrievalLevel, retrievedDataTypeMessageKey);
}
@Override
protected Iterable<PWC> retrieveData(HUG element) {
final Set<PWC> data = new HashSet<>();
for (final WildcardPermission permission : element.getUser().getPermissions()) {
if (isAborted()) {
break;
}
data.add(createPermissionWithContext(element, permission));
}
return data;
}
protected abstract PWC createPermissionWithContext(HUG element, WildcardPermission permission);
}
@@ -1,34 +1,25 @@
package com.sap.sse.security.datamining.components;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
import com.sap.sse.security.datamining.data.HasPermissionsOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasPermissionOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserInUserGroupContext;
import com.sap.sse.security.datamining.data.impl.PermissionOfUserInUserGroupWithContext;
import com.sap.sse.security.shared.WildcardPermission;
public class SecurityPermissionsOfUserInUserGroupRetrievalProcessor extends AbstractRetrievalProcessor<HasUserInUserGroupContext, HasPermissionsOfUserInUserGroupContext> {
public class SecurityPermissionsOfUserInUserGroupRetrievalProcessor extends AbstractSecurityPermissionsOfUserRetrievalProcessor<HasUserInUserGroupContext, HasPermissionOfUserInUserGroupContext> {
public SecurityPermissionsOfUserInUserGroupRetrievalProcessor(ExecutorService executor,
Collection<Processor<HasPermissionsOfUserInUserGroupContext, ?>> resultReceivers, int retrievalLevel,
Collection<Processor<HasPermissionOfUserInUserGroupContext, ?>> resultReceivers, int retrievalLevel,
String retrievedDataTypeMessageKey) {
super(HasUserInUserGroupContext.class, HasPermissionsOfUserInUserGroupContext.class, executor, resultReceivers,
super(executor, HasUserInUserGroupContext.class, HasPermissionOfUserInUserGroupContext.class, resultReceivers,
retrievalLevel, retrievedDataTypeMessageKey);
}
@Override
protected Iterable<HasPermissionsOfUserInUserGroupContext> retrieveData(HasUserInUserGroupContext element) {
final Set<HasPermissionsOfUserInUserGroupContext> data = new HashSet<>();
for (final WildcardPermission permission : element.getUser().getPermissions()) {
if (isAborted()) {
break;
}
data.add(new PermissionOfUserInUserGroupWithContext(element, permission));
}
return data;
protected HasPermissionOfUserInUserGroupContext createPermissionWithContext(HasUserInUserGroupContext element,
WildcardPermission permission) {
return new PermissionOfUserInUserGroupWithContext(element, permission);
}
}
@@ -0,0 +1,25 @@
package com.sap.sse.security.datamining.components;
import java.util.Collection;
import java.util.concurrent.ExecutorService;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.security.datamining.data.HasPermissionOfUserContext;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.datamining.data.impl.PermissionOfUserWithContext;
import com.sap.sse.security.shared.WildcardPermission;
public class SecurityPermissionsOfUserRetrievalProcessor extends AbstractSecurityPermissionsOfUserRetrievalProcessor<HasUserContext, HasPermissionOfUserContext> {
public SecurityPermissionsOfUserRetrievalProcessor(ExecutorService executor,
Collection<Processor<HasPermissionOfUserContext, ?>> resultReceivers, int retrievalLevel,
String retrievedDataTypeMessageKey) {
super(executor, HasUserContext.class, HasPermissionOfUserContext.class, resultReceivers,
retrievalLevel, retrievedDataTypeMessageKey);
}
@Override
protected HasPermissionOfUserContext createPermissionWithContext(HasUserContext element,
WildcardPermission permission) {
return new PermissionOfUserWithContext(element, permission);
}
}
@@ -0,0 +1,36 @@
package com.sap.sse.security.datamining.components;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.datamining.data.impl.UserWithContext;
import com.sap.sse.security.shared.impl.User;
public class SecurityUserRetrievalProcessor extends AbstractRetrievalProcessor<SecurityService, HasUserContext> {
public SecurityUserRetrievalProcessor(ExecutorService executor,
Collection<Processor<HasUserContext, ?>> resultReceivers, int retrievalLevel,
String retrievedDataTypeMessageKey) {
super(SecurityService.class, HasUserContext.class, executor, resultReceivers,
retrievalLevel, retrievedDataTypeMessageKey);
}
@Override
protected Iterable<HasUserContext> retrieveData(SecurityService securityService) {
final Set<HasUserContext> data = new HashSet<>();
for (final User user : securityService.getUserList()) {
if (isAborted()) {
break;
}
if (securityService.hasCurrentUserReadPermission(user)) {
data.add(new UserWithContext(user, securityService));
}
}
return data;
}
}
@@ -0,0 +1,29 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.common.Util;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.security.shared.WildcardPermission;
public interface HasPermissionContext {
WildcardPermission getPermission();
@Dimension(messageKey="PermissionString", ordinal=0)
default String getPermissionString() {
return getPermission().toString();
}
@Dimension(messageKey="PermissionTypes", ordinal=1)
default String getPermissionTypes() {
return !getPermission().getParts().isEmpty() ? Util.joinStrings(",", getPermission().getParts().get(0)) : "";
}
@Dimension(messageKey="PermissionActions", ordinal=2)
default String getPermissionActions() {
return getPermission().getParts().size() > 1 ? Util.joinStrings(",", getPermission().getParts().get(1)) : "";
}
@Dimension(messageKey="PermissionObjects", ordinal=3)
default String getPermissionObjects() {
return getPermission().getParts().size() > 2 ? Util.joinStrings(",", getPermission().getParts().get(2)) : "";
}
}
@@ -0,0 +1,8 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.datamining.annotations.Connector;
public interface HasPermissionOfUserContext extends HasPermissionContext {
@Connector
HasUserContext getUser();
}
@@ -0,0 +1,8 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.datamining.annotations.Connector;
public interface HasPermissionOfUserInUserGroupContext extends HasPermissionContext {
@Connector
HasUserInUserGroupContext getUserInUserGroupContext();
}
@@ -1,21 +0,0 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
public interface HasPermissionsOfUserInUserGroupContext {
@Connector
HasUserInUserGroupContext getUserInUserGroupContext();
@Dimension(messageKey="PermissionString", ordinal=0)
String getPermissionString();
@Dimension(messageKey="PermissionTypes", ordinal=1)
String getPermissionTypes();
@Dimension(messageKey="PermissionActions", ordinal=2)
String getPermissionActions();
@Dimension(messageKey="PermissionObjects", ordinal=3)
String getPermissionObjects();
}
@@ -0,0 +1,58 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.common.Util;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.shared.impl.User;
public interface HasUserContext {
User getUser();
SecurityService getSecurityService();
@Dimension(messageKey="User")
default String getName() {
return getUser().getName();
}
@Dimension(messageKey="Locale")
default String getLocale() {
return getUser().getLocale() != null ? getUser().getLocale().getDisplayName() : "";
}
@Dimension(messageKey="HasFullName")
default boolean hasFullName() {
return Util.hasLength(getUser().getFullName());
}
@Dimension(messageKey="HasCompany")
default boolean hasCompany() {
return Util.hasLength(getUser().getCompany());
}
@Dimension(messageKey="Company")
default String getCompany() {
return getUser().getCompany();
}
@Dimension(messageKey="HasEmail")
default boolean hasEmail() {
return Util.hasLength(getUser().getEmail());
}
@Dimension(messageKey="IsEmailValidated")
default boolean isEmailValidated() {
return getUser().isEmailValidated();
}
@Statistic(messageKey="NumberOfPermissions")
default int getNumberOfPermissions() {
return Util.size(getUser().getPermissions());
}
@Statistic(messageKey="NumberOfPreferences")
default int getNumberOfPreferences() {
return getSecurityService().getAllPreferences(getUser().getName()).size();
}
}
@@ -1,12 +1,25 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.common.Util;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.shared.impl.UserGroup;
public interface HasUserGroupContext {
@Connector(messageKey="UserGroup", ordinal=0)
UserGroup getUserGroup();
@Dimension(messageKey="ImpliesRoles")
default boolean isImpliesRoles() {
return !getUserGroup().getRoleDefinitionMap().isEmpty();
}
@Statistic(messageKey="NumberOfUsersInUserGroup")
default int getNumberOfUsersInUserGroup() {
return Util.size(getUserGroup().getUsers());
}
SecurityService getSecurityService();
}
@@ -1,54 +1,8 @@
package com.sap.sse.security.datamining.data;
import com.sap.sse.common.Util;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.security.shared.impl.User;
public interface HasUserInUserGroupContext {
public interface HasUserInUserGroupContext extends HasUserContext {
@Connector
HasUserGroupContext getUserGroupContext();
User getUser();
@Dimension(messageKey="User")
default String getName() {
return getUser().getName();
}
@Dimension(messageKey="Locale")
default String getLocale() {
return getUser().getLocale() != null ? getUser().getLocale().getDisplayName() : "";
}
@Dimension(messageKey="HasFullName")
default boolean hasFullName() {
return Util.hasLength(getUser().getFullName());
}
@Dimension(messageKey="HasCompany")
default boolean hasCompany() {
return Util.hasLength(getUser().getCompany());
}
@Dimension(messageKey="Company")
default String getCompany() {
return getUser().getCompany();
}
@Dimension(messageKey="HasEmail")
default boolean hasEmail() {
return Util.hasLength(getUser().getEmail());
}
@Dimension(messageKey="IsEmailValidated")
default boolean isEmailValidated() {
return getUser().isEmailValidated();
}
@Statistic(messageKey="NumberOfPermissions")
default int getNumberOfPermissions() {
return Util.size(getUser().getPermissions());
}
}
@@ -0,0 +1,17 @@
package com.sap.sse.security.datamining.data.impl;
import com.sap.sse.security.datamining.data.HasPermissionOfUserContext;
import com.sap.sse.security.shared.WildcardPermission;
public abstract class AbstractPermissionOfUserWithContext implements HasPermissionOfUserContext {
private final WildcardPermission permission;
public AbstractPermissionOfUserWithContext(WildcardPermission permission) {
this.permission = permission;
}
@Override
public WildcardPermission getPermission() {
return permission;
}
}
@@ -1,17 +1,16 @@
package com.sap.sse.security.datamining.data.impl;
import com.sap.sse.common.Util;
import com.sap.sse.security.datamining.data.HasPermissionsOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasPermissionOfUserInUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.datamining.data.HasUserInUserGroupContext;
import com.sap.sse.security.shared.WildcardPermission;
public class PermissionOfUserInUserGroupWithContext implements HasPermissionsOfUserInUserGroupContext {
public class PermissionOfUserInUserGroupWithContext extends AbstractPermissionOfUserWithContext implements HasPermissionOfUserInUserGroupContext {
private final HasUserInUserGroupContext userInUserGroupContext;
private final WildcardPermission permission;
public PermissionOfUserInUserGroupWithContext(HasUserInUserGroupContext userInUserGroupContext, WildcardPermission permission) {
super(permission);
this.userInUserGroupContext = userInUserGroupContext;
this.permission = permission;
}
@Override
@@ -19,27 +18,8 @@ public class PermissionOfUserInUserGroupWithContext implements HasPermissionsOfU
return userInUserGroupContext;
}
private WildcardPermission getPermission() {
return permission;
}
@Override
public String getPermissionString() {
return getPermission().toString();
}
@Override
public String getPermissionTypes() {
return !getPermission().getParts().isEmpty() ? Util.joinStrings(",", getPermission().getParts().get(0)) : "";
}
@Override
public String getPermissionActions() {
return getPermission().getParts().size() > 1 ? Util.joinStrings(",", getPermission().getParts().get(1)) : "";
}
@Override
public String getPermissionObjects() {
return getPermission().getParts().size() > 2 ? Util.joinStrings(",", getPermission().getParts().get(2)) : "";
public HasUserContext getUser() {
return getUserInUserGroupContext();
}
}
@@ -0,0 +1,19 @@
package com.sap.sse.security.datamining.data.impl;
import com.sap.sse.security.datamining.data.HasPermissionOfUserContext;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.shared.WildcardPermission;
public class PermissionOfUserWithContext extends AbstractPermissionOfUserWithContext implements HasPermissionOfUserContext {
private final HasUserContext userContext;
public PermissionOfUserWithContext(HasUserContext userContext, WildcardPermission permission) {
super(permission);
this.userContext = userContext;
}
@Override
public HasUserContext getUser() {
return userContext;
}
}
@@ -1,5 +1,6 @@
package com.sap.sse.security.datamining.data.impl;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.datamining.data.HasUserGroupContext;
import com.sap.sse.security.datamining.data.HasUserInUserGroupContext;
import com.sap.sse.security.shared.impl.User;
@@ -54,4 +55,9 @@ public class UserInUserGroupWithContext implements HasUserInUserGroupContext {
public User getUser() {
return user;
}
@Override
public SecurityService getSecurityService() {
return getUserGroupContext().getSecurityService();
}
}
@@ -0,0 +1,26 @@
package com.sap.sse.security.datamining.data.impl;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.datamining.data.HasUserContext;
import com.sap.sse.security.shared.impl.User;
public class UserWithContext implements HasUserContext {
private final User user;
private final SecurityService securityService;
public UserWithContext(User user, SecurityService securityService) {
super();
this.user = user;
this.securityService = securityService;
}
@Override
public User getUser() {
return user;
}
@Override
public SecurityService getSecurityService() {
return securityService;
}
}