/* ================================================================== * 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.service; import java.util.List; import java.util.Map; import com.jinhe.tss.um.entity.Group; import com.jinhe.tss.um.helper.dto.GroupDTO; import com.jinhe.tss.um.helper.dto.OperatorDTO; /** * <p> * 用户登录系统相关业务逻辑处理接口: * <li>根据用户登录名获取用户名及认证方式信息等; * <li>根据用户ID获取用户信息; * <li>根据用户登录名获取用户信息; * </p> */ public interface ILoginService { /** * <p> * 根据用户登录名获取用户名及身份认证器类名 * </p> * @param loginName 用户登录名 * @return String[] {用户名:String,身份认证器类名(全路径):String} */ String[] getLoginInfoByLoginName(String loginName); /** * <p> * 根据用户ID获取用户信息 * </p> * @param id 用户ID * @return OperatorDTO 用户信息DTO */ OperatorDTO getOperatorDTOByID(Long id); /** * <p> * 根据用户登录名获取用户信息 * </p> * @param loginName 用户登录名 * @return OperatorDTO 用户信息DTO */ OperatorDTO getOperatorDTOByLoginName(String loginName); /** * <p> * 登陆成功后 * 获取登陆用户的所有的角色列表。 * </p> * @param userId * 用户ID * @return * 登陆用户拥有的所有权限 List(Object[]{userId, roleId}) */ List<Object[]> getUserRolesAfterLogin(Long userId); /** * <p> * 获取登陆用户的所有的角色列表 * </p> * @param userId * 用户ID * @return * 登陆用户拥有的所有权限 List(roleId) */ List<Long> getRoleIdsByUserId(Long userId); /** * <p> * 用户之间的转换 * </p> * @param userId * 用户ID * @param applicationId * 应用系统ID * @return * 存在:返回用户DTO * 不存在:返回null(未找到对应的用户) */ OperatorDTO translateUser(Long userId, String applicationId); /** * <p> * 根据主用户找到所在组的最外层节点 * 不包括主用户组(-2)这个节点 * </p> * @param userId * 用户ID * @return * Object obj[0]=groupId,obj[1]=groupName */ Object getRootGroupByUserId(Long userId); /** * <p> * 根据用户获取用户所在组织关系 * </p> * @param userId * @return * Map: * key = Integer(x) / value = Object[](groupId, groupName) * 层次是从上向下,依次类推 */ Map<Integer, Object[]> getGroupsByUserId(Long userId); /** * <p> * 根据组id获取该组下的儿子结点。(供远程调用,需要转换成GroupDTO,Group只限于UMS使用) * 其它基于UMS的应用需要取部门列表的话可以采用本方法获取。 * </p> * @param groupId * @return */ List<GroupDTO> getGroupTreeByGroupId(Long groupId); /** * 取组(不包含子组)下的用户列表,转换为OperatorDTO对象列表。 * @param groupId * @return */ List<OperatorDTO> getUsersByGroupId(Long groupId); /** * <p> * 保存其他应用用户密码,以明文的形式保存。 * </p> * @param userId * @param password */ void savePassword(Long userId, String password); /** * 根据角色的ID 获取拥有此角色的用户 * 注:需要同时取出“转授”关联起来的RoleUser。 * @param roleId * @return List */ List<OperatorDTO> getUsersByRoleId(Long roleId); /** * 根据角色的ID 获取拥有此角色的用户组。 * 注:需要同时取出“转授”关联起来的RoleGroup。 * @param roleId * @return List */ List<Group> getGroupsByRoleId(Long roleId); }