77

package org.zttc.itat.auth.dao;

import java.security.acl.Acl;
import java.util.List;
import java.util.Map;

/**
 * 
 * @author hfw2192
 *
 */
public interface IAclDao {
    /**
     * 根据主体id,主体类型,资源id,资源类型,获取ACL对象
     * @param pid
     * @param ptype
     * @param rid
     * @param rtype
     * @return
     */
    public Acl loadAcl(int pid, String ptype,int rid,String rtype);
    /**
     * 根据角色id,资源类型和资源id获取ACL对象
     * @param roleId
     * @param rid
     * @param rtype
     * @return
     */
    public Acl loadAclByRole(int roleId,int rid,String rtype);
    /**
     * 根绝用户id,资源类型和资源id获取ACL对象
     * @param userId
     * @param rid
     * @param rtype
     * @return
     */
    public Acl loadAclByUser(int userId,int rid,String rtype);
    
    /**
     * 根绝角色id,资源类型,资源id获取该角色可以访问的所有的操作id
     * @param rid
     * @param rtype
     * @return
     */
    public List<Integer> listRoleOperIdsByRes(Integer rid,String rtype,Integer roleId);
    /**
     * 根绝用户id,资源类型,资源id获取该角色可以访问的所有的操作id
     * 1.获取该用户的所有角色,再通过角色获取可以操作的操作id
     * 2.获取该用户自己可以访问的操作id
     * @param rid
     * @param rtype
     * @param userId
     * @return
     */
    public List<Integer> listUserOperIdsByRes(Integer rid,String rtype,Integer userId);
    /**
     * 获取用户自己所授权的所有操作id
     * @param rid
     * @param rtype
     * @param userId
     * @return
     */
    public List<Integer> listUserSelfOperIdsByRes(Integer rid,String rtype,Integer userId);
    /**
     * 获取某个角色可以访问的所有资源操作对象
     * 返回值为Map,key:资源的类名,value:所有可以访问的操作
     * @param roleId
     * @return
     */
    
    public Map<String,List<String>>  listAllResAndOperByRole(Integer roleId);
    
    /**
     * 获取某个用户可以访问的所有资源操作对象
     * 1.获取用户所有角色对象的资源操作
     * 2.获取自己的资源操作
     * 返回值为Map,key:资源的类名,value:所有可以访问的操作
     * @param userId
     * @return
     */
    
    public Map<String,List<String>>  listAllResAndOperByUser(Integer userId);
    
    /**
     * 根据角色的id获取该角色可以访问的所有的菜单的sn
     * @param roleId
     * @return
     */
    public List<String> listMenuSnByRole(Integer roleId);
    
    /**
     * 根据用户的id获取该用户可以访问的所有的菜单的sn
     * 1.先获取该用户角色的数据
     * 2.获取用户自己所授权的数据
     * @param userId
     * @return
     */
    public List<String> listMenuSnByUser(Integer userId);
    /**
     * 根据角色的id获取岁所对应的所有菜单的id
     * @param roleId
     * @return
     */
    public List<String> listMenuIdByRole(Integer roleId);
    
    /**
     * 根据用户的id,获取该用户所对应的所有菜单的id
     * 1.获取角色的数据
     * 2.获取用户自己独立的数据
     * @param userId
     * @return
     */
    public List<String> listMenuIdByUser(Integer userId);
    /**
     * 根据用户的id,获取该用户自己的的菜单的id,不获取角色所对应的菜单id
     * @param userId
     * @return
     */
    public List<String> listMenuIdByUserSelf(Integer userId);
    
}
package org.zttc.itat.auth.dao;

import java.util.List;

import org.zttc.itat.auth.model.ControllerOper;
import org.zttc.itat.auth.model.ControllerResource;

/**
 * 
 * @author hfw2192
 *
 */
public interface IControllerDao {
    public void add(ControllerResource cr,String psd);
    
    public void addOper(ControllerOper oper,String rsn);
    public void addOper(ControllerOper oper,Integer rid);
    
    public void updateOper(ControllerOper oper);
    public void deleteOper(Integer operId);
    public List<ControllerResource> listResByParent(Integer id);
    /**
     * 根据资源id列表资源的操作对象
     * @param rid
     * @return
     */
    public List<ControllerOper> listOperByRes(Integer rid);
    
    public ControllerOper loadOperById(int operId);
    
    public ControllerOper loadOperBySn(String rsn,String sn);
}
package org.zttc.itat.auth.dao;

import java.util.List;

import org.zttc.itat.auth.dto.LeftMenuDto;
import org.zttc.itat.auth.model.MenuPos;
import org.zttc.itat.auth.model.MenuResource;

/**
 * 菜单资源对象的接口
 * @author hfw2192
 *
 */
public interface IMenuResDao {
    public void add(MenuResource mr,String psn);
    /**
     * 根据菜单的位置和父类Menu的sn获取模块所有的菜单资源对象
     * @param psn
     * @param pos
     * @return
     */
    public List<MenuResource> listModelMenuByType(String psn,MenuPos pos);
    /**
     * 获取顶部的菜单资源对象
     * @return
     */
    public List<MenuResource> listTopMenu();
    /**
     * 获取左边导航的菜单资源对象
     * @return
     */
    public List<LeftMenuDto> listLeftMenu();
    
    public List<TreeDto> tree();
    
    public List<MenuResource> listByParent(Integer pid);
}
package org.zttc.itat.auth.dao;

import java.util.List;

import org.zttc.itat.auth.model.Role;

public interface IRoleDao {
    public List<Role> listRole();
    public void deleteRoleUsers(int rid);
}
package org.zttc.itat.auth.dao;

import java.util.List;

import org.zttc.itat.auth.model.Role;
import org.zttc.itat.auth.model.User;

public interface IUserDao {
    /**
     * 获取用户所有角色信息
     * @param userId
     * @return
     */
    public List<Role> listUserRoles(int userId);
    /**
     * 获取用户所有角色id
     * @param userId
     * @return
     */
    public List<Integer> listUserRoleIds(int userId);
    /**
     * 获取用户所有组的id
     * @param userId
     * @return
     */
    public List<Integer> listUserGroupIds(int userId);
    /**
     * 根据用户和角色获取用户角色的关联对象
     */
    
    /**
     * 
     * @param roleId
     * @return
     */
    public List<User> listRoleUsers(int roleId);
    /**
     * 根据角色类型获取用户对象
     * @param roleType
     * @return
     */
    //public List<User> listRoleUsers(RoleType roleType);
    
    /**
     * 获取某个组中的用户对象
     * @param gid
     * @return
     */
    public List<User> listGroupUsers(int gid);
    /**
     * 添加用户角色对象
     * @param user
     * @param role
     */
    public void addUserRole(User user,Role role);
    /**
     * 删除用户的角色信息
     * @param uid
     */
    public void deleteUserRoles(int uid);
    /**
     * 删除用户的组信息
     * @param gid
     */
    public void deleteUserGroups(int gid);
}
package org.zttc.itat.auth.dao.impl;

import java.util.List;

import org.zttc.itat.auth.dao.IMenuResDao;
import org.zttc.itat.auth.dao.TreeDto;
import org.zttc.itat.auth.dto.LeftMenuDto;
import org.zttc.itat.auth.model.MenuPos;
import org.zttc.itat.auth.model.MenuResource;

public class MenuResDao implements IMenuResDao {

    @Override
    public void add(MenuResource mr, String psn) {
        MenuResource parent = this.loadBySn(psn,"MenuResource");
        if(parent == null) throw new Exception("菜单的父类不存在");
        mr.setParent(parent);
        mr.setPsn(psn);
        MenuResource self = this.loadBySn(mr.getSn(),"MenuResource");
        if(self == null){
            //不存在
            if(mr.getOrderNum() == 0){
                mr.setOrderNum(super.getMaxOrder(parent.getId(),"MenuResources")+10);
            }else{
                //存在就进行修改
                self.setDisplay(mr.getDisplay());
                self.setHref(mr.getHref());
                self.setIcon(mr.getIcon());
                self.setMenuPos(mr.getMenuPos());
                self.setName(mr.getName());
                if(mr.getOrderNum()>0){
                    self.setOrderNum(mr.getOrderNum());
                }
                self.setSn(mr.getSn());
            }
            super.getSession().saveOrUpdate(mr);
        }
    }

    @Override
    public List<MenuResource> listModelMenuByType(String psn, MenuPos pos) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<MenuResource> listTopMenu() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<LeftMenuDto> listLeftMenu() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<MenuResource> listByParent(Integer pid) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<TreeDto> tree() {
        // TODO Auto-generated method stub
        return null;
    }

}
原文地址:https://www.cnblogs.com/mrxiaohe/p/6485428.html