package org.joget.workflow.shark; import org.joget.directory.model.Group; import org.joget.directory.model.User; import org.joget.directory.model.service.DirectoryManager; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import org.enhydra.shark.api.admin.UserGroupManagerAdmin; import org.enhydra.shark.api.client.wfmc.wapi.WMSessionHandle; import org.enhydra.shark.api.internal.working.CallbackUtilities; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; public class WorkflowUserGroupManagerAdmin implements UserGroupManagerAdmin { @Autowired @Qualifier("main") private DirectoryManager directoryManager; public void addGroupToGroup(String groupName, String subgroupName) throws Exception { } public void addUserToGroup(String groupName, String username) throws Exception { } public void createGroup(String groupName, String description) throws Exception { } public void createUser(String groupName, String username, String password, String firstName, String lastName, String emailAddress) throws Exception { } public void moveGroup(String currentParentGroup, String newParentGroup, String subgroupName) throws Exception { } public void moveUser(String currentGroup, String newGroup, String username) throws Exception { } public void removeGroup(String groupName) throws Exception { } public void removeGroupFromGroup(String groupName, String subgroupName) throws Exception { } public void removeGroupTree(String groupName) throws Exception { } public void removeUser(String username) throws Exception { } public void removeUserFromGroup(String groupName, String username) throws Exception { } public void removeUsersFromGroupTree(String groupName) throws Exception { } public void setPassword(String username, String password) throws Exception { } public void updateGroup(String groupName, String description) throws Exception { } public void updateUser(String username, String firstName, String lastName, String emailAddress) throws Exception { } public void configure(CallbackUtilities cus) throws Exception { } public boolean doesGroupBelongToGroup(WMSessionHandle shandle, String groupName, String subgroupName) throws Exception { return false; } public boolean doesGroupExist(WMSessionHandle shandle, String groupName) throws Exception { try { getGroupByName(groupName); return true; } catch (SecurityException e) { return false; } } public boolean doesUserBelongToGroup(WMSessionHandle shandle, String groupName, String username) throws Exception { return directoryManager.isUserInGroup(username, groupName); } public boolean doesUserExist(WMSessionHandle shandle, String username) throws Exception { try { getUserByUsername(username); return true; } catch (SecurityException e) { return false; } } public String[] getAllGroupnames(WMSessionHandle shandle) throws Exception { Collection groupNames = new ArrayList(); Collection<Group> groupList = directoryManager.getGroupList(); for (Group group : groupList) { groupNames.add(group.getName()); } return (String[]) groupNames.toArray(new String[0]); } public String[] getAllGroupnamesForUser(WMSessionHandle shandle, String userName) throws Exception { Collection groupNames = new ArrayList(); Collection<Group> groupList = directoryManager.getGroupByUsername(userName); for (Group group : groupList) { groupNames.add(group.getName()); } return (String[]) groupNames.toArray(new String[0]); } public String[] getAllImmediateSubgroupsForGroup(WMSessionHandle shandle, String groupName) throws Exception { return null; } public String[] getAllImmediateUsersForGroup(WMSessionHandle shandle, String groupName) throws Exception { Collection userNames = new ArrayList(); Collection<User> userList = directoryManager.getUserByGroupName(groupName); for (User user : userList) { userNames.add(user.getUsername()); } return (String[]) userNames.toArray(new String[0]); } public String[] getAllSubgroupsForGroups(WMSessionHandle shandle, String[] groupNames) throws Exception { return null; } public String[] getAllUsers(WMSessionHandle shandle) throws Exception { Collection userNames = new ArrayList(); Collection<User> userList = directoryManager.getUserList(); for (User user : userList) { userNames.add(user.getUsername()); } return (String[]) userNames.toArray(new String[0]); } public String[] getAllUsersForGroups(WMSessionHandle shandle, String[] groupNames) throws Exception { Collection userList = new HashSet(); if (groupNames != null) { for (int i = 0; i < groupNames.length; i++) { Group group = getGroupByName(groupNames[i]); if (group != null) { Collection<User> groupUsers = directoryManager.getUserByGroupId(group.getId()); for (User user : groupUsers) { userList.add(user.getUsername()); } } } } return (String[]) userList.toArray(new String[0]); } public String getGroupDescription(WMSessionHandle shandle, String groupName) throws Exception { return null; } public String[] getGroups(WMSessionHandle sessionHandle, String expression) throws Exception { return null; } public String[] getObjects(WMSessionHandle sessionHandle, String expression) throws Exception { return null; } public String getUserEMailAddress(WMSessionHandle shandle, String username) throws Exception { User user = getUserByUsername(username); return user.getEmail(); } public String getUserFirstName(WMSessionHandle shandle, String username) throws Exception { User user = getUserByUsername(username); return user.getFirstName(); } public String getUserLastName(WMSessionHandle shandle, String username) throws Exception { User user = getUserByUsername(username); return user.getLastName(); } public String getUserPassword(WMSessionHandle shandle, String username) throws Exception { User user = getUserByUsername(username); return user.getPassword(); } public String getUserRealName(WMSessionHandle shandle, String username) throws Exception { User user = getUserByUsername(username); return user.getFirstName(); } public boolean validateUser(String username, String pwd) throws Exception { try { return true; } catch (SecurityException e) { return false; } } protected User getUserByUsername(String username) throws SecurityException { return directoryManager.getUserByUsername(username); } protected Group getGroupByName(String groupName) throws SecurityException { return directoryManager.getGroupByName(groupName); } }