/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/sakai-mock/trunk/src/main/java/org/sakaiproject/mock/service/UserDirectoryService.java $
* $Id: UserDirectoryService.java 130607 2013-10-18 13:11:06Z azeckoski@unicon.net $
***********************************************************************************
*
* Copyright (c) 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.mock.service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
import java.util.Map.Entry;
import org.sakaiproject.entity.api.Entity;
import org.sakaiproject.entity.api.HttpAccess;
import org.sakaiproject.entity.api.Reference;
import org.sakaiproject.entity.api.ResourceProperties;
import org.sakaiproject.user.api.User;
import org.sakaiproject.user.api.UserAlreadyDefinedException;
import org.sakaiproject.user.api.UserEdit;
import org.sakaiproject.user.api.UserIdInvalidException;
import org.sakaiproject.user.api.UserLockedException;
import org.sakaiproject.user.api.UserNotDefinedException;
import org.sakaiproject.user.api.UserPermissionException;
import org.sakaiproject.user.api.PasswordPolicyProvider;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class UserDirectoryService implements
org.sakaiproject.user.api.UserDirectoryService {
Map<String, org.sakaiproject.mock.domain.User> users = new HashMap<String, org.sakaiproject.mock.domain.User>();
org.sakaiproject.mock.domain.User currentUser;
public UserEdit addUser(String id, String eid)
throws UserIdInvalidException, UserAlreadyDefinedException,
UserPermissionException {
org.sakaiproject.mock.domain.User user = new org.sakaiproject.mock.domain.User();
user.setId(id);
user.setEid(eid);
users.put(id, user);
return user;
}
public User addUser(String id, String eid, String firstName,
String lastName, String email, String pw, String type,
ResourceProperties properties) throws UserIdInvalidException,
UserAlreadyDefinedException, UserPermissionException {
org.sakaiproject.mock.domain.User user = new org.sakaiproject.mock.domain.User(pw, id, eid, firstName + " " + lastName, email,
firstName, lastName, lastName + ", " + firstName, eid, null, null, null, null, properties, null, null, null);
user.setId(id);
user.setEid(eid);
users.put(id, user);
return user;
}
public boolean allowAddUser() {
return true;
}
public boolean allowRemoveUser(String id) {
return true;
}
public boolean allowUpdateUser(String id) {
return true;
}
public boolean allowUpdateUserEmail(String id) {
return true;
}
public boolean allowUpdateUserName(String id) {
return true;
}
public boolean allowUpdateUserPassword(String id) {
return true;
}
public boolean allowUpdateUserType(String id) {
return true;
}
public User authenticate(String eid, String password) {
org.sakaiproject.mock.domain.User user = new org.sakaiproject.mock.domain.User();
user.setId(eid);
user.setEid(eid);
return user;
}
public void cancelEdit(UserEdit user) {
}
public void commitEdit(UserEdit user) throws UserAlreadyDefinedException {
}
public int countSearchUsers(String criteria) {
return 0;
}
public int countUsers() {
return 0;
}
public void destroyAuthentication() {
}
public UserEdit editUser(String id) throws UserNotDefinedException,
UserPermissionException, UserLockedException {
return null;
}
public Collection findUsersByEmail(String email) {
return null;
}
public User getAnonymousUser() {
return null;
}
public User getCurrentUser() {
return currentUser;
}
public void setCurrentUser(org.sakaiproject.mock.domain.User currentUser) {
this.currentUser = currentUser;
}
public User getUser(String id) throws UserNotDefinedException {
return users.get(id);
}
public User getUserByEid(String eid) throws UserNotDefinedException {
return users.get(eid);
}
public String getUserEid(String id) throws UserNotDefinedException {
return null;
}
public String getUserId(String eid) throws UserNotDefinedException {
org.sakaiproject.mock.domain.User user = (org.sakaiproject.mock.domain.User)getUserByEid(eid);
if(user == null) return null;
return user.getEid();
}
public List getUsers() {
List<org.sakaiproject.mock.domain.User> userList = new ArrayList<org.sakaiproject.mock.domain.User>();
for(Iterator<Entry<String, org.sakaiproject.mock.domain.User>> iter = users.entrySet().iterator(); iter.hasNext();) {
userList.add(iter.next().getValue());
}
return userList;
}
public List getUsers(Collection<String> ids) {
List<org.sakaiproject.mock.domain.User> userList = new ArrayList<org.sakaiproject.mock.domain.User>();
for(Iterator<Entry<String, org.sakaiproject.mock.domain.User>> iter = users.entrySet().iterator(); iter.hasNext();) {
org.sakaiproject.mock.domain.User user = iter.next().getValue();
if(ids.contains(user.getId())) userList.add(user);
}
return userList;
}
public List<User> getUsers(int first, int last) {
return getUsers();
}
public List<User> getUsersByEids(Collection<String> eids)
{
List<User> userList = new ArrayList<User>();
for(Iterator<Entry<String, org.sakaiproject.mock.domain.User>> iter = users.entrySet().iterator(); iter.hasNext();) {
org.sakaiproject.mock.domain.User user = iter.next().getValue();
if(eids.contains(user.getEid())) userList.add(user);
}
return userList;
}
public UserEdit mergeUser(Element el) throws UserIdInvalidException {
return null;
}
public void removeUser(UserEdit user) throws UserPermissionException {
users.remove(user.getId());
}
public List searchUsers(String criteria, int first, int last) {
return null;
}
public String userReference(String id) {
return "/user/" + id;
}
public String archive(String siteId, Document doc, Stack stack,
String archivePath, List attachments) {
return null;
}
public Entity getEntity(Reference ref) {
return null;
}
public Collection getEntityAuthzGroups(Reference ref, String userId) {
return null;
}
public String getEntityDescription(Reference ref) {
return null;
}
public ResourceProperties getEntityResourceProperties(Reference ref) {
return null;
}
public String getEntityUrl(Reference ref) {
return null;
}
public HttpAccess getHttpAccess() {
return null;
}
public String getLabel() {
return this.getClass().getName();
}
public String merge(String siteId, Element root, String archivePath,
String fromSiteId, Map attachmentNames, Map userIdTrans,
Set userListAllowImport) {
return null;
}
public boolean parseEntityReference(String reference, Reference ref) {
return false;
}
public boolean willArchiveMerge() {
return false;
}
public List<User> searchExternalUsers(String criteria, int first, int last) {
return null;
}
public UserDirectoryService.PasswordRating validatePassword(String password, User user) {
return UserDirectoryService.PasswordRating.PASSED_DEFAULT;
}
}