Skip to content

Commit fcdf1df

Browse files
committed
RA-552:Adding the View Logged in Users functionality to core
1 parent fb44e6b commit fcdf1df

File tree

4 files changed

+55
-136
lines changed

4 files changed

+55
-136
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* This Source Code Form is subject to the terms of the Mozilla Public License,
3+
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
4+
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
5+
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
6+
*
7+
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
8+
* graphic logo is a trademark of OpenMRS Inc.
9+
*/
10+
package org.openmrs.util;
11+
12+
import java.util.Collections;
13+
import java.util.LinkedHashSet;
14+
import java.util.Set;
15+
import org.openmrs.User;
16+
import org.openmrs.UserSessionListener;
17+
import org.springframework.stereotype.Component;
18+
19+
@Component
20+
public class CurrentUsers implements UserSessionListener {
21+
22+
private static Set<String> currentlyLoggedInUsers = Collections.synchronizedSet(new LinkedHashSet(500));
23+
24+
@Override
25+
public void loggedInOrOut(User user, Event event, Status status) {
26+
if(!(status == Status.SUCCESS)) {
27+
return;
28+
}
29+
if(event == Event.LOGIN) {
30+
currentlyLoggedInUsers.add(user.getUsername());
31+
}
32+
else if(event == Event.LOGOUT) {
33+
currentlyLoggedInUsers.remove(user.getUsername());
34+
}
35+
}
36+
37+
public static Set<String> getCurrentUsernames(){
38+
return Collections.unmodifiableSet(new LinkedHashSet(currentlyLoggedInUsers));
39+
}
40+
41+
}
Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,35 @@
77
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
88
* graphic logo is a trademark of OpenMRS Inc.
99
*/
10-
package org.openmrs.web.filter.update.util;
10+
package org.openmrs.util;
11+
12+
import java.util.Set;
1113

12-
import java.util.List;
1314
import org.junit.Assert;
1415
import org.junit.jupiter.api.Test;
1516
import org.openmrs.User;
1617
import org.openmrs.api.UserService;
1718
import org.openmrs.api.context.Context;
18-
import org.openmrs.web.filter.util.CurrentUsers;
19-
import org.openmrs.web.test.BaseWebContextSensitiveTest;
19+
import org.openmrs.api.context.Credentials;
20+
import org.openmrs.api.context.UsernamePasswordCredentials;
21+
import org.openmrs.test.jupiter.BaseContextSensitiveTest;
2022
import org.springframework.beans.factory.annotation.Autowired;
21-
import org.springframework.mock.web.MockHttpSession;
22-
23-
public class CurrentUsersTest extends BaseWebContextSensitiveTest {
2423

25-
private static final String USER_SET = "org/openmrs/CurrentUserTest.xml";
24+
public class CurrentUsersTest extends BaseContextSensitiveTest {
25+
private static final String USER_SET = "org/openmrs/util/CurrentUserTest.xml";
2626
@Autowired
2727
UserService userService;
2828

2929
@Test
30-
30+
3131
public void getCurrentUsernames_shoulReturnUserNamesForLoggedInUsers() {
3232
executeDataSet(USER_SET);
33-
MockHttpSession session = new MockHttpSession();
3433
User user = userService.getUser(5508);
35-
Context.authenticate(user.getUsername(),"User12345");
34+
Credentials credentials = new UsernamePasswordCredentials("Mukembo","Mukembo123");
35+
Context.authenticate(credentials);
3636
Assert.assertEquals(Context.getAuthenticatedUser().getUsername(),user.getUsername());
37-
CurrentUsers.addUser(session);
38-
List<String> currentUserNames = CurrentUsers.getCurrentUsernames(session);
39-
Assert.assertTrue(currentUserNames.contains("firstaccount"));
37+
Set<String> currentUserNames = CurrentUsers.getCurrentUsernames();
38+
Assert.assertTrue(currentUserNames.contains("Mukembo"));
4039

4140
}
4241

web/src/test/resources/org/openmrs/CurrentUserTest.xml renamed to api/src/test/resources/org/openmrs/util/CurrentUserTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
-->
1313
<dataset>
1414
<person person_id="5508" gender="F" dead="false" creator="1" date_created="2008-08-15 15:46:47.0" voided="false" uuid="edc3d446-e53b-11de-8404-001e378eb67e"/>
15-
<users user_id="5508" person_id="5508" system_id="508-x" username="firstaccount" password="74e3ed4f9e5b955de443feabc9f12ecd291ac6a7eaa2f09a72a5c811ec618b044d7131f687c0a0465fc0c660d09fd245e410e12ffe77d78b2a0c504b40afa202" salt="1c30292f0b438b49b181950f3e831c6a9f38ef1c7d559fca566e8cd6b4efb417150585d4c3345f0fb0b520fc0884ad82ea7c1a28f48c2c562106a3d110716cfc" secret_question="a secret" secret_answer="an answer" creator="1" date_created="2008-08-15 15:57:09.0" changed_by="1" date_changed="2008-08-18 11:51:56.0" retired="false" retire_reason="" uuid="2eadf946-e53c-11de-8404-001e378eb67e"/>
15+
<users user_id="5508" person_id="5508" system_id="508-x" username="Mukembo" password="07082424c46568fa5442a3ddd9521ff8bf0715a6c4d411b2f79a37a2d45b5c14c97e2f3754f7367390bd68ec7aa22c5f1891dc413b3861063d5973fb4cd4bcda" salt="d485cc2ce9e8f15e4b15411363ee03471c72b2579dbf7d3684ed485ec94d8f480e281db0abc77d09bcd7fe96e6cc9a80423f69a8a594d5825cf02aedc4da787e" secret_question="" secret_answer="" creator="1" date_created="2008-08-15 15:57:09.0" changed_by="1" date_changed="2008-08-18 11:51:56.0" retired="false" retire_reason="" uuid="2eadf946-e53c-11de-8404-001e378eb67e"/>
1616
</dataset>

web/src/main/java/org/openmrs/web/filter/util/CurrentUsers.java

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)