//$Id: SystemUserService.java,v 1.1 2007-4-8 下午04:50:12 chaostone Exp $
/*
*
* Copyright c 2005-2009
* Licensed under the Apache License, Version 2.0 (the "License")
* http://www.apache.org/licenses/LICENSE-2.0
*
*
*/
/********************************************************************************
* @author chaostone
*
* MODIFICATION DESCRIPTION
*
* Name Date Description
* ============ ============ ============
*chaostone 2007-4-8 Created
*
********************************************************************************/
package org.beanfuse.security.service;
import java.util.List;
import java.util.Set;
import org.beanfuse.model.EntityExistException;
import org.beanfuse.security.Group;
import org.beanfuse.security.User;
import org.beanfuse.security.dao.UserDao;
public interface UserService {
/**
* 根据用户名和密码查找用户
*
* @param name
* @param password
* @return
*/
public User get(String name, String password);
/**
* 根据登陆名查找用户
*
* @param name
* @return
*/
public User get(String name);
/**
* 查询指定id的用户,不存在时返回null
*
* @param id
* @return
*/
public User get(Long id);
/**
* 保存新用户,用户存在时,抛出异常
*
* @param user
*/
public void saveOrUpdate(User user) throws EntityExistException;
/**
* 返回userIds指定的用户
*
* @param userIds
* @return
*/
public List getUsers(Long userIds[]);
/**
* 查询用户关联的用户组(不包含上级组)
*
* @param user
* @return
*/
public Set getGroups(User user);
/**
* 设置用户状态
*
* @param userIds
* @param state
*/
public void updateState(Long[] userIds, int state);
/**
* 创建帐户
*
* @param creator
* @param newUser
*/
public void createUser(User creator, User newUser);
/**
* 删除creator与managed的管理关系,如该用户为creator所创建,则删除user
*
* @param creator
* @param managed
*/
public void removeUser(User creator, User user);
/**
* 是否属于管理关系
*
* @param manager
* @param managed
*
* @return
*/
public boolean isManagedBy(User manager, User user);
/**
* 创建一个用户组
*
* @param creator
* @param group
*/
public void createGroup(User creator, Group group);
/**
* 删除管理者与用户组的管理关系,如果该用户组为其所创建则彻底删除. 1)超级管理员不能被删除.<br>
* 2)如果删除人有超级管理员用户组,则可以删除不是自己创建的用户组
*
* @param manager
* @param group
*/
public void removeGroup(User manager, List groups);
/**
* 设置用户信息管理的数据存取对象
*
* @param userDao
*/
public void setUserDao(UserDao userDao);
}