dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #34722
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 17801: User management, improved performance of can update filter
------------------------------------------------------------
revno: 17801
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2014-12-26 14:22:45 +0100
message:
User management, improved performance of can update filter
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/filter/UserAuthorityGroupCanIssueFilter.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DisableUserAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetOrgunitUserListAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/RemoveUserAction.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java 2014-12-19 15:42:38 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java 2014-12-26 13:22:45 +0000
@@ -255,11 +255,11 @@
* of this user credentials, or this user credentials must have the ALL
* authority.
*
- * @param group the user authority group.
+ * @param group the user authority group.
* @param canGrantOwnUserAuthorityGroups indicates whether this users can grant
- * its own authoritiy groups to others.
+ * its own authority groups to others.
*/
- public boolean canIssue( UserAuthorityGroup group, boolean canGrantOwnUserAuthorityGroups )
+ public boolean canIssueUserRole( UserAuthorityGroup group, boolean canGrantOwnUserAuthorityGroups )
{
if ( group == null )
{
@@ -282,13 +282,34 @@
}
/**
+ * Indicates whether this user credentials can issue all of the user authority
+ * groups in the given collection.
+ *
+ * @param groups the collection of user authority groups.
+ * @param canGrantOwnUserAuthorityGroups indicates whether this users can grant
+ * its own authority groups to others.
+ */
+ public boolean canIssueUserRoles( Collection<UserAuthorityGroup> groups, boolean canGrantOwnUserAuthorityGroups )
+ {
+ for ( UserAuthorityGroup group : groups )
+ {
+ if ( !canIssueUserRole( group, canGrantOwnUserAuthorityGroups ) )
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
* Indicates whether this user credentials can modify the given user
* credentials. This user credentials must have the ALL authority or possess
* all user authorities of the other user credentials to do so.
*
* @param other the user credentials to modify.
*/
- public boolean canModify( UserCredentials other )
+ public boolean canModifyUser( UserCredentials other )
{
if ( other == null )
{
@@ -306,27 +327,6 @@
}
/**
- * Indicates whether this user credentials can issue all of the user authority
- * groups in the given collection.
- *
- * @param groups the collection of user authority groups.
- * @param canGrantOwnUserAuthorityGroups indicates whether this users can grant
- * its own authoritiy groups to others.
- */
- public boolean canIssueAll( Collection<UserAuthorityGroup> groups, boolean canGrantOwnUserAuthorityGroups )
- {
- for ( UserAuthorityGroup group : groups )
- {
- if ( !canIssue( group, canGrantOwnUserAuthorityGroups ) )
- {
- return false;
- }
- }
-
- return true;
- }
-
- /**
* Return the name of this user credentials. More specifically, if this
* credentials has a user it will return the first name and surname of that
* user, if not it returns the username of this credentials.
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java 2014-12-26 12:27:14 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java 2014-12-26 13:22:45 +0000
@@ -326,16 +326,8 @@
*
* @param userCredentials the list of user credentials.
*/
- void canUpdateFilter( Collection<UserCredentials> userCredentials );
+ void canUpdateUserCredentialsFilter( Collection<UserCredentials> userCredentials );
- /**
- * Is the current user allowed to update this user?
- *
- * @param userCredentials credentials to check for allowing update.
- * @return true if current user can update this user, else false.
- */
- boolean canUpdate( UserCredentials userCredentials );
-
boolean credentialsNonExpired( UserCredentials credentials );
// -------------------------------------------------------------------------
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java 2014-12-26 12:27:14 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java 2014-12-26 13:22:45 +0000
@@ -733,37 +733,35 @@
@Override
public void canUpdateUsersFilter( Collection<User> users )
{
- FilterUtils.filter( users,
- new Filter<User>()
- {
- @Override
- public boolean retain( User object )
- {
- return canUpdate( object.getUserCredentials() );
- }
- }
- );
- }
-
- @Override
- public void canUpdateFilter( Collection<UserCredentials> userCredentials )
- {
- FilterUtils.filter( userCredentials,
- new Filter<UserCredentials>()
- {
- @Override
- public boolean retain( UserCredentials object )
- {
- return canUpdate( object );
- }
- }
- );
- }
-
- @Override
- public boolean canUpdate( UserCredentials userCredentials )
- {
- return hasAuthorityToUpdateUser( userCredentials );
+ final UserCredentials currentUserCredentials = currentUserService.getCurrentUser().getUserCredentials();
+ final boolean canGrantOwnUserAuthorityGroups = (Boolean) systemSettingManager.getSystemSetting( KEY_CAN_GRANT_OWN_USER_AUTHORITY_GROUPS, false );
+
+ FilterUtils.filter( users, new Filter<User>() {
+ @Override
+ public boolean retain( User user )
+ {
+ UserCredentials userCredentials = user.getUserCredentials();
+
+ return currentUserCredentials != null && userCredentials != null
+ && currentUserCredentials.canIssueUserRoles( userCredentials.getUserAuthorityGroups(), canGrantOwnUserAuthorityGroups );
+ }
+ } );
+ }
+
+ @Override
+ public void canUpdateUserCredentialsFilter( Collection<UserCredentials> userCredentials )
+ {
+ final UserCredentials currentUserCredentials = currentUserService.getCurrentUser().getUserCredentials();
+ final boolean canGrantOwnUserAuthorityGroups = (Boolean) systemSettingManager.getSystemSetting( KEY_CAN_GRANT_OWN_USER_AUTHORITY_GROUPS, false );
+
+ FilterUtils.filter( userCredentials, new Filter<UserCredentials>() {
+ @Override
+ public boolean retain( UserCredentials userCredentials )
+ {
+ return currentUserCredentials != null && userCredentials != null
+ && currentUserCredentials.canIssueUserRoles( userCredentials.getUserAuthorityGroups(), canGrantOwnUserAuthorityGroups );
+ }
+ } );
}
@Override
@@ -780,25 +778,4 @@
return months < credentialsExpires;
}
-
- // -------------------------------------------------------------------------
- // Supportive methods
- // -------------------------------------------------------------------------
-
- /**
- * Determines if the current user has all the authorities required to
- * update a user.
- *
- * @param userCredentials The user to be updated.
- * @return true if current user has authorities, else false.
- */
- private boolean hasAuthorityToUpdateUser( UserCredentials userCredentials )
- {
- UserCredentials currentUserCredentials = currentUserService.getCurrentUser().getUserCredentials();
-
- boolean canGrantOwnUserAuthorityGroups = (Boolean) systemSettingManager.getSystemSetting( KEY_CAN_GRANT_OWN_USER_AUTHORITY_GROUPS, false );
-
- return currentUserCredentials != null && userCredentials != null
- && currentUserCredentials.canIssueAll( userCredentials.getUserAuthorityGroups(), canGrantOwnUserAuthorityGroups );
- }
}
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/filter/UserAuthorityGroupCanIssueFilter.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/filter/UserAuthorityGroupCanIssueFilter.java 2014-03-23 18:26:50 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/filter/UserAuthorityGroupCanIssueFilter.java 2014-12-26 13:22:45 +0000
@@ -59,6 +59,6 @@
@Override
public boolean retain( UserAuthorityGroup group )
{
- return userCredentials != null && userCredentials.canIssue( group, canGrantOwnUserAuthorityGroups );
+ return userCredentials != null && userCredentials.canIssueUserRole( group, canGrantOwnUserAuthorityGroups );
}
}
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DisableUserAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DisableUserAction.java 2014-10-16 06:17:19 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/DisableUserAction.java 2014-12-26 13:22:45 +0000
@@ -79,7 +79,7 @@
return ERROR;
}
- if ( !currentUser.getUserCredentials().canModify( credentials ) )
+ if ( !currentUser.getUserCredentials().canModifyUser( credentials ) )
{
return ERROR;
}
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetOrgunitUserListAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetOrgunitUserListAction.java 2014-10-16 06:17:19 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetOrgunitUserListAction.java 2014-12-26 13:22:45 +0000
@@ -131,7 +131,7 @@
}
}
- userService.canUpdateFilter( userCredentialsList );
+ userService.canUpdateUserCredentialsFilter( userCredentialsList );
Collections.sort( userCredentialsList, new UsernameComparator() );
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java 2014-10-16 06:17:19 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java 2014-12-26 13:22:45 +0000
@@ -146,7 +146,7 @@
Collections.sort( userCredentialsList, new UsernameComparator() );
}
- userService.canUpdateFilter( userCredentialsList );
+ userService.canUpdateUserCredentialsFilter( userCredentialsList );
return SUCCESS;
}
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/RemoveUserAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/RemoveUserAction.java 2014-11-25 03:16:09 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/RemoveUserAction.java 2014-12-26 13:22:45 +0000
@@ -104,7 +104,7 @@
return ERROR;
}
- if ( !currentUser.getUserCredentials().canModify( user.getUserCredentials() ) )
+ if ( !currentUser.getUserCredentials().canModifyUser( user.getUserCredentials() ) )
{
return ERROR;
}