From 2298e4d567065da922399eeb9b0a9d2d70e38067 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 21 Jul 2014 12:14:55 +0200 Subject: [PATCH] OO-1000: preserve the creation date and last modified date of the security group membership during update, fields use as first access and last access in groups --- .../org/olat/basesecurity/BaseSecurity.java | 18 --- .../basesecurity/BaseSecurityManager.java | 81 ++-------- .../org/olat/upgrade/OLATUpgrade_10_0_0.java | 35 ++++- .../basesecurity/SecurityManagerTest.java | 138 +++++++----------- 4 files changed, 98 insertions(+), 174 deletions(-) diff --git a/src/main/java/org/olat/basesecurity/BaseSecurity.java b/src/main/java/org/olat/basesecurity/BaseSecurity.java index 9e4917a6880..77a2b73eb61 100644 --- a/src/main/java/org/olat/basesecurity/BaseSecurity.java +++ b/src/main/java/org/olat/basesecurity/BaseSecurity.java @@ -132,30 +132,12 @@ public interface BaseSecurity { */ public List<Identity> getIdentitiesOfSecurityGroups(List<SecurityGroup> secGroups); - //fxdiff: FXOLAT-219 decrease the load for synching groups - public List<IdentityShort> getIdentitiesShortOfSecurityGroups(List<SecurityGroup> secGroups, int firstResult, int maxResults); - /** * @param secGroup * @return a List of Object[] with the array[0] = Identity, array[1] = * addedToGroupTimestamp */ public List<Object[]> getIdentitiesAndDateOfSecurityGroup(SecurityGroup secGroup); - - /** - * @see org.olat.basesecurity.Manager#getIdentitiesAndDateOfSecurityGroup(org.olat.basesecurity.SecurityGroup) - * @param sortedByAddDate true= return list of idenities sorted by added date - */ - public List<Object[]> getIdentitiesAndDateOfSecurityGroup(SecurityGroup secGroup, boolean sortedByAddDate); - - - /** - * Get date where identity joined a security group - * @param secGroup - * @param identity - * @return joindate of given securityGroup. May return null if group doesn't exist or user isn't in this group - */ - public Date getSecurityGroupJoinDateForIdentity(SecurityGroup secGroup, Identity identity); /** * @param securityGroupName diff --git a/src/main/java/org/olat/basesecurity/BaseSecurityManager.java b/src/main/java/org/olat/basesecurity/BaseSecurityManager.java index 5f4127402be..f8ea85b4355 100644 --- a/src/main/java/org/olat/basesecurity/BaseSecurityManager.java +++ b/src/main/java/org/olat/basesecurity/BaseSecurityManager.java @@ -795,85 +795,35 @@ public class BaseSecurityManager extends BasicManager implements BaseSecurity { sb.append("select distinct(identity) from ").append(SecurityGroupMembershipImpl.class.getName()).append(" as sgmsi ") .append(" inner join sgmsi.identity identity ") .append(" inner join fetch identity.user user ") - .append(" where sgmsi.securityGroup in (:secGroups)"); + .append(" where sgmsi.securityGroup in (:secGroups)"); - return DBFactory.getInstance().getCurrentEntityManager() + return dbInstance.getCurrentEntityManager() .createQuery(sb.toString(), Identity.class) .setParameter("secGroups", secGroups) .getResultList(); } - - @Override - //fxdiff: FXOLAT-219 decrease the load for synching groups - public List<IdentityShort> getIdentitiesShortOfSecurityGroups(List<SecurityGroup> secGroups, int firstResult, int maxResults) { - if (secGroups == null || secGroups.isEmpty()) { - return Collections.emptyList(); - } - - StringBuilder sb = new StringBuilder(); - sb.append("select id from ").append(IdentityShort.class.getName()).append(" as id ") - .append(" where id.key in (") - .append(" select sgmsi.identity.key from ").append(SecurityGroupMembershipImpl.class.getName()).append(" as sgmsi ") - .append(" where sgmsi.securityGroup in (:secGroups)") - .append(" )"); - - DBQuery query = DBFactory.getInstance().createQuery(sb.toString()); - query.setParameterList("secGroups", secGroups); - List<IdentityShort> idents = query.list(); - return idents; - } /** * @see org.olat.basesecurity.Manager#getIdentitiesAndDateOfSecurityGroup(org.olat.basesecurity.SecurityGroup) */ - public List getIdentitiesAndDateOfSecurityGroup(SecurityGroup secGroup) { - return getIdentitiesAndDateOfSecurityGroup(secGroup,false); - } - - /** - * @see org.olat.basesecurity.Manager#getIdentitiesAndDateOfSecurityGroup(org.olat.basesecurity.SecurityGroup) - * @param sortedByAddDate true= return list of idenities sorted by added date - */ - public List getIdentitiesAndDateOfSecurityGroup(SecurityGroup secGroup, boolean sortedByAddDate) { - StringBuilder queryString = new StringBuilder(); - queryString.append("select ii, sgmsi.lastModified from" - + " org.olat.basesecurity.IdentityImpl as ii inner join fetch ii.user as iuser, " - + " org.olat.basesecurity.SecurityGroupMembershipImpl as sgmsi " - + " where sgmsi.securityGroup = ? and sgmsi.identity = ii"); - if (sortedByAddDate) { - queryString.append(" order by sgmsi.lastModified, sgmsi.key"); - } - List identAndDate = DBFactory.getInstance().find(queryString.toString(), - new Object[] { secGroup.getKey() }, - new Type[] { StandardBasicTypes.LONG }); - return identAndDate; - } - - /** - * - * @see org.olat.basesecurity.Manager#getSecurityGroupJoinDateForIdentity(org.olat.basesecurity.SecurityGroup, org.olat.core.id.Identity) - */ - public Date getSecurityGroupJoinDateForIdentity(SecurityGroup secGroup, Identity identity){ - String query = "select creationDate from " + " org.olat.basesecurity.SecurityGroupMembershipImpl as sgi " - + " where sgi.securityGroup = :secGroup and sgi.identity = :identId"; - - DB db = DBFactory.getInstance(); - DBQuery dbq = db.createQuery(query); - dbq.setLong("identId", identity.getKey().longValue()); - dbq.setLong("secGroup", secGroup.getKey()); - List result = dbq.list(); - if (result.size()==0){ - return null; - } - else { - return (Date)result.get(0); - } + @Override + public List<Object[]> getIdentitiesAndDateOfSecurityGroup(SecurityGroup secGroup) { + StringBuilder sb = new StringBuilder(); + sb.append("select ii, sgmsi.lastModified from ").append(IdentityImpl.class.getName()).append(" as ii") + .append(" inner join fetch ii.user as iuser, ") + .append(SecurityGroupMembershipImpl.class.getName()).append(" as sgmsi") + .append(" where sgmsi.securityGroup=:secGroup and sgmsi.identity = ii"); + + return dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), Object[].class) + .setParameter("secGroup", secGroup) + .getResultList(); } - /** * @see org.olat.basesecurity.Manager#countIdentitiesOfSecurityGroup(org.olat.basesecurity.SecurityGroup) */ + @Override public int countIdentitiesOfSecurityGroup(SecurityGroup secGroup) { DB db = DBFactory.getInstance(); String q = "select count(sgm) from org.olat.basesecurity.SecurityGroupMembershipImpl sgm where sgm.securityGroup = :group"; @@ -887,6 +837,7 @@ public class BaseSecurityManager extends BasicManager implements BaseSecurity { /** * @see org.olat.basesecurity.Manager#createAndPersistNamedSecurityGroup(java.lang.String) */ + @Override public SecurityGroup createAndPersistNamedSecurityGroup(String groupName) { SecurityGroup secG = createAndPersistSecurityGroup(); NamedGroupImpl ngi = new NamedGroupImpl(groupName, secG); diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_10_0_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_10_0_0.java index 47b27006d27..582aa7b2444 100644 --- a/src/main/java/org/olat/upgrade/OLATUpgrade_10_0_0.java +++ b/src/main/java/org/olat/upgrade/OLATUpgrade_10_0_0.java @@ -28,12 +28,15 @@ import java.util.Set; import org.olat.basesecurity.BaseSecurity; import org.olat.basesecurity.Constants; import org.olat.basesecurity.Group; +import org.olat.basesecurity.GroupMembership; import org.olat.basesecurity.GroupRoles; import org.olat.basesecurity.Policy; import org.olat.basesecurity.SecurityGroup; +import org.olat.basesecurity.SecurityGroupMembershipImpl; import org.olat.basesecurity.manager.GroupDAO; +import org.olat.basesecurity.model.GroupImpl; +import org.olat.basesecurity.model.GroupMembershipImpl; import org.olat.core.commons.persistence.DB; -import org.olat.core.id.Identity; import org.olat.group.BusinessGroupService; import org.olat.group.manager.BusinessGroupRelationDAO; import org.olat.group.right.BGRightManager; @@ -515,12 +518,36 @@ public class OLATUpgrade_10_0_0 extends OLATUpgrade { private void processSecurityGroup(Group group, String role, SecurityGroup secGroup) { if(secGroup == null) return; - List<Identity> identities = securityManager.getIdentitiesOfSecurityGroup(secGroup); - for(Identity identity:identities) { - groupDao.addMembership(group, identity, role); + List<SecurityGroupMembershipImpl> oldMemberships = getMembershipsOfSecurityGroup(secGroup); + for(SecurityGroupMembershipImpl oldMembership:oldMemberships) { + GroupMembershipImpl membership = new GroupMembershipImpl(); + membership.setCreationDate(oldMembership.getCreationDate()); + membership.setLastModified(oldMembership.getLastModified()); + membership.setGroup(group); + membership.setIdentity(oldMembership.getIdentity()); + membership.setRole(role); + dbInstance.getCurrentEntityManager().persist(membership); + + Set<GroupMembership> members = ((GroupImpl)group).getMembers(); + if(members == null) { + members = new HashSet<>(); + ((GroupImpl)group).setMembers(members); + } + members.add(membership); } } + private List<SecurityGroupMembershipImpl> getMembershipsOfSecurityGroup(SecurityGroup secGroup) { + StringBuilder sb = new StringBuilder(); + sb.append("select membership from ").append(SecurityGroupMembershipImpl.class.getName()).append(" as membership") + .append(" where membership.securityGroup=:secGroup"); + return dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), SecurityGroupMembershipImpl.class) + .setParameter("secGroup", secGroup) + .getResultList(); + } + + private List<BusinessGroupUpgrade> findBusinessGroups(int firstResult, int maxResults) { StringBuilder sb = new StringBuilder(); sb.append("select businessgroup from ").append(BusinessGroupUpgrade.class.getName()).append(" businessgroup") diff --git a/src/test/java/org/olat/basesecurity/SecurityManagerTest.java b/src/test/java/org/olat/basesecurity/SecurityManagerTest.java index a2e286b0f6a..e73fcd94063 100644 --- a/src/test/java/org/olat/basesecurity/SecurityManagerTest.java +++ b/src/test/java/org/olat/basesecurity/SecurityManagerTest.java @@ -28,19 +28,13 @@ package org.olat.basesecurity; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Calendar; import java.util.Date; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.UUID; - -import junit.framework.Assert; import org.junit.Before; import org.junit.Ignore; @@ -49,11 +43,10 @@ import org.olat.core.commons.persistence.DB; import org.olat.core.commons.persistence.DBFactory; import org.olat.core.id.Identity; import org.olat.core.id.UserConstants; -import org.olat.core.logging.OLog; -import org.olat.core.logging.Tracing; import org.olat.core.util.Encoder; import org.olat.test.JunitTestHelper; import org.olat.test.OlatTestCase; +import org.springframework.beans.factory.annotation.Autowired; /** * SecurityTestSuite is a container of all Tests in this package. @@ -62,12 +55,11 @@ import org.olat.test.OlatTestCase; */ public class SecurityManagerTest extends OlatTestCase { - private static OLog log = Tracing.createLoggerFor(SecurityManagerTest.class); private Identity s1,s2,s3,testAdmin; - private static String testLogin = "test-login"; - private BaseSecurity sm; - + private static String testLogin = "test-login"; + @Autowired + private BaseSecurity securityManager; // Already tested in BusinessGroupTest : // - getGroupsWithPermissionOnOlatResourceable @@ -75,45 +67,48 @@ public class SecurityManagerTest extends OlatTestCase { /** * */ - @Test public void testGetIdentitiesByPowerSearch() { + @Test + public void testGetIdentitiesByPowerSearch() { // test using visibility search - List<Identity> userList = sm.getVisibleIdentitiesByPowerSearch(testLogin, null, true, null, null, null, null, null); + List<Identity> userList = securityManager.getVisibleIdentitiesByPowerSearch(testLogin, null, true, null, null, null, null, null); assertEquals(1,userList.size()); Identity identity = userList.get(0); assertEquals(testLogin,identity.getName()); // test using powser search - userList = sm.getIdentitiesByPowerSearch(testLogin, null, true, null, null, null, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(testLogin, null, true, null, null, null, null, null, null, null, null); assertEquals(1,userList.size()); identity = userList.get(0); assertEquals(testLogin,identity.getName()); } - @Test public void testGetIdentitiesByPowerSearchWithuserProperties() { + @Test + public void testGetIdentitiesByPowerSearchWithuserProperties() { Map<String, String> userProperties = new HashMap<String, String>(); userProperties.put(UserConstants.FIRSTNAME, "first"+ testLogin); userProperties.put(UserConstants.LASTNAME, "last"+ testLogin); // test using visibility search - List<Identity> userList = sm.getVisibleIdentitiesByPowerSearch(testLogin, userProperties, true, null, null, null, null, null); + List<Identity> userList = securityManager.getVisibleIdentitiesByPowerSearch(testLogin, userProperties, true, null, null, null, null, null); assertEquals(1,userList.size()); Identity identity = userList.get(0); assertEquals("first" + testLogin,identity.getUser().getProperty(UserConstants.FIRSTNAME, null)); // test using powser search - userList = sm.getIdentitiesByPowerSearch(testLogin, userProperties, true, null, null, null, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(testLogin, userProperties, true, null, null, null, null, null, null, null, null); assertEquals(1,userList.size()); identity = userList.get(0); assertEquals("first" + testLogin,identity.getUser().getProperty(UserConstants.FIRSTNAME, null)); } - @Test public void testGetIdentitiesByPowerSearchWithConjunctionFlag() { + @Test + public void testGetIdentitiesByPowerSearchWithConjunctionFlag() { // 1) two fields that match to two different users Map<String, String> userProperties = new HashMap<String, String>(); userProperties.put(UserConstants.FIRSTNAME, s1.getUser().getProperty(UserConstants.FIRSTNAME, null)); userProperties.put(UserConstants.LASTNAME, s2.getUser().getProperty(UserConstants.LASTNAME, null)); // with AND search (conjunction) no identity is found - List<Identity> userList = sm.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null); + List<Identity> userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null); assertEquals(0, userList.size()); // with OR search both identities are found - userList = sm.getIdentitiesByPowerSearch(null, userProperties, false, null, null, null, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, false, null, null, null, null, null, null, null, null); assertEquals(2, userList.size()); // 2) two fields wheras only one matches to one single user @@ -121,21 +116,22 @@ public class SecurityManagerTest extends OlatTestCase { userProperties.put(UserConstants.FIRSTNAME, s1.getUser().getProperty(UserConstants.FIRSTNAME, null)); userProperties.put(UserConstants.LASTNAME, "some nonexisting value"); // with AND search (conjunction) no identity is found - userList = sm.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, null, null, null, null, null, null); assertEquals(0, userList.size()); // with OR search first identity ist found - userList = sm.getIdentitiesByPowerSearch(null, userProperties, false, null, null, null, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, false, null, null, null, null, null, null, null, null); assertEquals(1, userList.size()); } - @Test public void testGetIdentitiesByPowerSearchWithAuthProviders() { + @Test + public void testGetIdentitiesByPowerSearchWithAuthProviders() { // 1) only auth providers and login String[] authProviders = {BaseSecurityModule.getDefaultAuthProviderIdentifier()}; for (int i = 0; i < authProviders.length; i++) { assertTrue("Provider name.length must be <= 8", authProviders[i].length() <= 8); } - List<Identity> userList = sm.getVisibleIdentitiesByPowerSearch(testLogin, null, true, null, null, authProviders, null, null); + List<Identity> userList = securityManager.getVisibleIdentitiesByPowerSearch(testLogin, null, true, null, null, authProviders, null, null); assertEquals(1,userList.size()); Identity identity = userList.get(0); assertEquals(testLogin,identity.getName()); @@ -143,7 +139,7 @@ public class SecurityManagerTest extends OlatTestCase { for (int i = 0; i < nonAuthProviders.length; i++) { assertTrue("Provider name.length must be <= 8", nonAuthProviders[i].length() <= 8); } - userList = sm.getVisibleIdentitiesByPowerSearch(testLogin, null, true, null, null, nonAuthProviders, null, null); + userList = securityManager.getVisibleIdentitiesByPowerSearch(testLogin, null, true, null, null, nonAuthProviders, null, null); assertEquals(0,userList.size()); // 2) two fields wheras only one matches to one single user @@ -151,14 +147,14 @@ public class SecurityManagerTest extends OlatTestCase { userProperties.put(UserConstants.FIRSTNAME, s1.getUser().getProperty(UserConstants.FIRSTNAME, null)); userProperties.put(UserConstants.LASTNAME, "some nonexisting value"); // with AND search (conjunction) no identity is found - userList = sm.getIdentitiesByPowerSearch(null, userProperties, true, null, null, authProviders, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, authProviders, null, null, null, null, null); assertEquals(0, userList.size()); // with OR search first identity ist found - userList = sm.getIdentitiesByPowerSearch(null, userProperties, false, null, null, authProviders, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, false, null, null, authProviders, null, null, null, null, null); assertEquals(1, userList.size()); // 3) two fields wheras only one matches to one single user - sm.createAndPersistAuthentication(s1, "mytest_p", s1.getName(), "sdf", Encoder.Algorithm.sha512); + securityManager.createAndPersistAuthentication(s1, "mytest_p", s1.getName(), "sdf", Encoder.Algorithm.sha512); String[] myProviders = new String[] {"mytest_p", "non-prov"}; for (int i = 0; i < myProviders.length; i++) { assertTrue("Provider name.length must be <= 8", myProviders[i].length() <= 8); @@ -167,73 +163,42 @@ public class SecurityManagerTest extends OlatTestCase { userProperties.put(UserConstants.FIRSTNAME, s1.getUser().getProperty(UserConstants.FIRSTNAME, null)); userProperties.put(UserConstants.LASTNAME, "some nonexisting value"); // with AND search (conjunction) no identity is found - userList = sm.getIdentitiesByPowerSearch(null, userProperties, true, null, null, myProviders, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, true, null, null, myProviders, null, null, null, null, null); assertEquals(0, userList.size()); // with OR search identity is found via auth provider and via first name - userList = sm.getIdentitiesByPowerSearch(null, userProperties, false, null, null, myProviders, null, null, null, null, null); + userList = securityManager.getIdentitiesByPowerSearch(null, userProperties, false, null, null, myProviders, null, null, null, null, null); assertEquals(1, userList.size()); } - @Test public void testRemoveIdentityFromSecurityGroup() { - SecurityGroup olatUsersGroup = sm.findSecurityGroupByName(Constants.GROUP_OLATUSERS); - assertTrue(sm.isIdentityInSecurityGroup(s1, olatUsersGroup)); - sm.removeIdentityFromSecurityGroup(s1, olatUsersGroup); - assertFalse(sm.isIdentityInSecurityGroup(s1, olatUsersGroup)); - sm.addIdentityToSecurityGroup(s1, olatUsersGroup); - assertTrue(sm.isIdentityInSecurityGroup(s1, olatUsersGroup)); + @Test + public void testRemoveIdentityFromSecurityGroup() { + SecurityGroup olatUsersGroup = securityManager.findSecurityGroupByName(Constants.GROUP_OLATUSERS); + assertTrue(securityManager.isIdentityInSecurityGroup(s1, olatUsersGroup)); + securityManager.removeIdentityFromSecurityGroup(s1, olatUsersGroup); + assertFalse(securityManager.isIdentityInSecurityGroup(s1, olatUsersGroup)); + securityManager.addIdentityToSecurityGroup(s1, olatUsersGroup); + assertTrue(securityManager.isIdentityInSecurityGroup(s1, olatUsersGroup)); } - @Test public void testGetIdentitiesAndDateOfSecurityGroup() { - SecurityGroup olatUsersGroup = sm.findSecurityGroupByName(Constants.GROUP_OLATUSERS); - List<Object[]> identities = sm.getIdentitiesAndDateOfSecurityGroup(olatUsersGroup, false);// not sortedByAddDate + @Test + public void testGetIdentitiesAndDateOfSecurityGroup() { + SecurityGroup olatUsersGroup = securityManager.findSecurityGroupByName(Constants.GROUP_OLATUSERS); + List<Object[]> identities = securityManager.getIdentitiesAndDateOfSecurityGroup(olatUsersGroup);// not sortedByAddDate assertTrue("Found no users", identities.size() > 0); Object[] firstIdentity = identities.get(0); assertTrue("Wrong type, Identity[0] must be an Identity", firstIdentity[0] instanceof Identity); assertTrue("Wrong type, Identity[1] must be a Date", firstIdentity[1] instanceof Date); - - identities = sm.getIdentitiesAndDateOfSecurityGroup(olatUsersGroup, true);// sortedByAddDate - assertTrue("Found no users", identities.size() > 0); - Date addedDateBefore = null; - for (Iterator<Object[]> iterator = identities.iterator(); iterator.hasNext();) { - Object[] object = iterator.next(); - Identity identity = (Identity) object[0]; - Assert.assertNotNull(identity); - Date addedDate = (Date) object[1]; - Assert.assertNotNull(addedDate); - if (addedDateBefore != null) { - assertTrue("Not sorted by AddDate ", (addedDate.compareTo(addedDateBefore) == 1) || (addedDate.compareTo(addedDateBefore) == 0) ); - } - addedDateBefore = addedDate; - } - } - - @Test public void testGetSecurityGroupJoinDateForIdentity(){ - String randomName = UUID.randomUUID().toString().replace("-", "").substring(0, 16); - SecurityGroup secGroup = sm.createAndPersistNamedSecurityGroup(randomName); - sm.addIdentityToSecurityGroup(s1, secGroup); - DBFactory.getInstance().commit(); - try { - // we have to sleep for a short time to have different time - Thread.sleep(1200);// > 1s as not all database save time up-to the milliseconds - } catch (InterruptedException e) { - log.error("", e); - } - Date now = new Date(); - assertTrue(sm.getSecurityGroupJoinDateForIdentity(secGroup, s1).getTime() < now.getTime()); - assertNotNull(sm.getSecurityGroupJoinDateForIdentity(secGroup, s1)); - if (!sm.getSecurityGroupsForIdentity(s2).contains(secGroup)){ - assertNull(sm.getSecurityGroupJoinDateForIdentity(secGroup, s2)); - } } - @Test public void testGetAuthentications() { - List<Authentication> authentications = sm.getAuthentications(s1); + @Test + public void testGetAuthentications() { + List<Authentication> authentications = securityManager.getAuthentications(s1); Authentication authentication = authentications.get(0); assertEquals(testLogin,authentication.getAuthusername()); } @Test public void testFindAuthenticationByAuthusername() { - Authentication authentication = sm.findAuthenticationByAuthusername(testLogin, BaseSecurityModule.getDefaultAuthProviderIdentifier()); + Authentication authentication = securityManager.findAuthenticationByAuthusername(testLogin, BaseSecurityModule.getDefaultAuthProviderIdentifier()); assertEquals(testLogin,authentication.getAuthusername()); } @@ -255,8 +220,8 @@ public class SecurityManagerTest extends OlatTestCase { Calendar c1 = Calendar.getInstance(); c1.add(Calendar.DAY_OF_YEAR, -100);// -100 - assertTrue("Found no user-logins", sm.countUniqueUserLoginsSince(c1.getTime()) >= 4); - Long initialUserLogins = sm.countUniqueUserLoginsSince(c1.getTime()); + assertTrue("Found no user-logins", securityManager.countUniqueUserLoginsSince(c1.getTime()) >= 4); + Long initialUserLogins = securityManager.countUniqueUserLoginsSince(c1.getTime()); // Set lastLogin for the 4 test-users c1 = Calendar.getInstance(); @@ -268,7 +233,7 @@ public class SecurityManagerTest extends OlatTestCase { s3.setLastLogin(c1.getTime()); testAdmin.setLastLogin(c1.getTime()); - // Set lastLogin for 4 test users + // Set lastLogin for 4 test users db.updateObject(s1); db.updateObject(s2); db.updateObject(s3); @@ -277,24 +242,23 @@ public class SecurityManagerTest extends OlatTestCase { Calendar c2 = Calendar.getInstance(); c2.add(Calendar.DAY_OF_YEAR, -2); - assertEquals(initialUserLogins - 4, sm.countUniqueUserLoginsSince(c2.getTime()).intValue() ); + assertEquals(initialUserLogins - 4, securityManager.countUniqueUserLoginsSince(c2.getTime()).intValue() ); c2 = Calendar.getInstance(); c2.add(Calendar.DAY_OF_YEAR, - 14); - assertEquals(initialUserLogins - 4, sm.countUniqueUserLoginsSince(c2.getTime()).intValue()); + assertEquals(initialUserLogins - 4, securityManager.countUniqueUserLoginsSince(c2.getTime()).intValue()); c2 = Calendar.getInstance(); c2.add(Calendar.DAY_OF_YEAR, - 16); - assertEquals(initialUserLogins - 1, sm.countUniqueUserLoginsSince(c2.getTime()).intValue()); + assertEquals(initialUserLogins - 1, securityManager.countUniqueUserLoginsSince(c2.getTime()).intValue()); c2 = Calendar.getInstance(); c2.add(Calendar.DAY_OF_YEAR, - 99); - assertEquals(initialUserLogins - 1, sm.countUniqueUserLoginsSince(c2.getTime()).intValue()); + assertEquals(initialUserLogins - 1, securityManager.countUniqueUserLoginsSince(c2.getTime()).intValue()); c2 = Calendar.getInstance(); c2.add(Calendar.DAY_OF_YEAR, - 101); - assertEquals(initialUserLogins, sm.countUniqueUserLoginsSince(c2.getTime())); + assertEquals(initialUserLogins, securityManager.countUniqueUserLoginsSince(c2.getTime())); } @Before public void setup() throws Exception { - sm = BaseSecurityManager.getInstance(); s1 = JunitTestHelper.createAndPersistIdentityAsUser(testLogin); s2 = JunitTestHelper.createAndPersistIdentityAsUser("coop"); s3 = JunitTestHelper.createAndPersistIdentityAsAuthor("diesbach"); -- GitLab