Skip to content

Commit

Permalink
Adding the View Logged in Users functionality to core
Browse files Browse the repository at this point in the history
  • Loading branch information
HerbertYiga committed Mar 1, 2021
1 parent 51e3485 commit 89473ac
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions api/src/main/java/org/openmrs/util/CurrentUsers.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package org.openmrs.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import javax.servlet.http.HttpSession;

public class CurrentUsers {


/**
* Initialize the current users list.
*
* @param servletContext
*/

public static Map<String,String> init(ServletContext servletContext){
Map<String,String> currentUserMap = Collections.synchronizedMap(new TreeMap<String,String>());
servletContext.setAtrribute(WebConstants.CURRENT_USERS,currentUserMap);
return currentUserMap;
}

/**
* Get the current list of map of users stored in the session
*
* @param httpSession the current session
* @return map of users logged in
*/
private static Map<String,String> getCurrentUsers(HttpSession httpSession){

Map<String,String> currentUsers = (Map <String,String>) httpSession.getServletContext().getAttribute(WebConstants.CURRENT_USERS);
if(currentUsers == null) {

currentUsers = init(httpSession.getServletContext());
}

return currentUsers;
}

/**
* Get sorted user names list.
*
* @param httpSession
* @return sorted user names
*/

public static List<String> getCurrentUsernames(HttpSession httpSession){

Map<String,String> currentUsers = getCurrentUsers(httpSession);

List<String> userNames = new ArrayList<String>();
synchronized(currentUsers){

for(String value:currentUsers.values()) {

userNames.add(value);
}

}

Collections.sort(userNames);
return userNames;
}


}

0 comments on commit 89473ac

Please sign in to comment.