/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
/**
*
*/
package com.ewcms.security.manage.service;
import java.util.Date;
import java.util.Set;
import org.springframework.security.core.userdetails.UserDetailsService;
import com.ewcms.security.manage.model.Authority;
import com.ewcms.security.manage.model.Group;
import com.ewcms.security.manage.model.User;
import com.ewcms.security.manage.model.UserInfo;
/**
*
* @author 王伟
*/
public interface UserServiceable extends UserDetailsService{
/**
* 添加用户
*
* @param username 用户名
* @param password 密码
* @param enabled 有效
* @param accountStart 授权开始时间
* @param accountEnd 授权结束时间
* @Param userInfo 用户详细信息
*
* @return 用户名
* @throws UserServiceException
*/
String addUser(String username,String password,boolean enabled,
Date accountStart,Date accountEnd,UserInfo userInfo, Integer organId)
throws UserServiceException;
/**
* 更新用户信息
*
* @param username 用户名
* @param enabled 有效
* @param accountStart 授权开始时间
* @param accountEnd 授权结束时间
* @Param userInfo 用户详细信息
*
* @return 用户名
* @throws UserServiceException
*/
String updateUser(String username,boolean enabled,
Date accountStart,Date accountEnd,UserInfo userInfo, Integer organId)
throws UserServiceException;
/**
* 得到用户
*
* @param username 用户名
* @return 用户对象
*/
User getUser(String username);
/**
* 删除用户
*
* @param username 用户名
*/
void removeUser(String username);
/**
* 激活(开启)用户
*
* 失效用户可以通过该过程激活,成为正常用户
*
* @param username 用户名
*/
void activeUser(String username);
/**
* 失效(关闭)用户
*
* 正常用户可以通过该过程失效,成为无效用户
*
* @param username
*/
void inactiveUser(String username);
/**
* 添加权限到用户
*
* 用户强迫退出(移除cache,session中的信息)。
*
* @param username 用户名称
* @param names 权限名称集合
* @return 新增权限集合
*/
Set<Authority> addAuthoritiesToUser(String username,Set<String> names);
/**
* 移除用户中权限
*
* 用户被强迫退出(移除cache,session中的信息)。
*
* @param username 用户名称
* @param names 权限名称集合
*/
void removeAuthoritiesInUser(String username,Set<String> names);
/**
* 添加用户组到用户
*
* 用户强迫退出(移除cache,session中的信息)。
*
* @param username 用户名称
* @param names 用户组名称集合
* @return 新增用户组集合
*/
Set<Group> addGroupsToUser(String username,Set<String> names);
/**
* 移除用户中用户组
*
* 用户强迫退出(移除cache,session中的信息)。
*
* @param username 用户名称
* @param names 用户组名称集合
*/
void removeGroupsInUser(String username,Set<String> names);
/**
* 得到当前用户信息
*
* @return
*/
UserInfo getCurrentUserInfo();
/**
* 更新当前用户信息
*
* @param userInfo
*/
void updateUserInfo(UserInfo userInfo);
/**
* 用户修改密码
*
* @param oldPassword 老密码
* @param newPassword 新密码
*/
void changePassword(String oldPassword,String newPassword);
/**
* 初始用户密码
*
* 用户丢失自己密码,管理初始一个新密码,再次开通该用户
*
* @param username 用户名
* @param password 密码
*/
void initPassword(String username,String password);
/**
* 判断用户名是否存在
*
* 用户名是关键字,新增时判断用户名是否被用
*
* @param username 用户名
* @return if true 存在 ,if false 不存在
*/
boolean hasUsername(String username);
/**
* 得到缺省用户密码
* @return 缺省密码
*/
String getDefaultPassword();
}