/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.um.dao;
import java.util.List;
import com.jinhe.tss.core.persistence.IDao;
import com.jinhe.tss.um.entity.GroupUser;
import com.jinhe.tss.um.entity.User;
public interface IUserDao extends IDao<User>{
/**
* 删除用户并删除用户对组,用户对角色信息
* @param id
*/
User removeUser(User user);
/**
* <p>
* 根据用户的id获取该用户拥有的所有角色
* (包括转授策略,但是转授策略不能删除,只能在权限转授中删除对应关系)
* </p>
*
* @param userId
* @return List
*/
List<?> findRolesByUserId(Long userId);
/**
* 批量初始化用户密码的时候使用,防止做为一个动态属性实体来保存,从而提高性能
* @param obj
* @return
*/
User initUser(User obj);
/**
* <p>
* 根据用户的id获取用户对组的信息
* </p>
*
* @param userId
* @return List
*/
List<?> findUser2GroupByUserId(Long userId);
/**
* <p>
* 根据用户的id获取用户对角色的信息
* </p>
*
* @param userId
* @return List
*/
List<?> findUser2RoleByUserId(Long userId);
/**
* <p>
* 获取组和用户的关系
* </p>
*
* @param groupId
* @param userId
* @return List
*/
GroupUser getGroup2User(Long groupId, Long userId);
/**
* <p>
* 根据appUserId、用户库Code获得相应用户库的对应用户
* </p>
* @param appUserId
* @param userDepositoryCode
* @return
*/
User getAppUser(Long userId, String userDepositoryCode);
/**
* <p>
* 根据用户登录名获取用户实体
* </p>
* @param loginName 登录名
* @return User 用户实体对象
*/
User getUserByLoginName(String loginName);
/**
* <p>
* 根据应用系统id和登陆账号获取一个用户
* 应用系统id和登陆账号是唯一约束
* </p>
* @param applicationId
* @param loginName
* @return
*/
User getUser(String applicationId, String loginName);
}