mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
bug5821: added first statistic about preferences
This commit is contained in:
1 parent
c7147b808b
commit
fd257883a4
22 files changed
+344
-137
No files matched your search
+4
-4
@@ -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);
|
||||
|
||||
|
||||
|
||||
+4
-4
@@ -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;
|
||||
|
||||
+9
-4
@@ -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
|
||||
+9
-4
@@ -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
|
||||
+6
-2
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+16
-9
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+37
@@ -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);
|
||||
}
|
||||
+7
-16
@@ -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);
|
||||
}
|
||||
}
|
||||
+25
@@ -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);
|
||||
}
|
||||
}
|
||||
+36
@@ -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;
|
||||
}
|
||||
}
|
||||
+29
@@ -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)) : "";
|
||||
}
|
||||
}
|
||||
+8
@@ -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();
|
||||
}
|
||||
+8
@@ -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();
|
||||
}
|
||||
-21
@@ -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();
|
||||
}
|
||||
+58
@@ -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();
|
||||
}
|
||||
}
|
||||
+13
@@ -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
-47
@@ -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());
|
||||
}
|
||||
}
|
||||
+17
@@ -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;
|
||||
}
|
||||
}
|
||||
+6
-26
@@ -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();
|
||||
}
|
||||
}
|
||||
+19
@@ -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;
|
||||
}
|
||||
}
|
||||
+6
@@ -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();
|
||||
}
|
||||
}
|
||||
+26
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user