CRM笔记(杂乱无章.无参考价值)

来源:互联网 发布:形象设计师软件下 编辑:程序博客网 时间:2024/04/29 08:01

此CRM包括三个方面

客户管理系统:客户的信息 预约 生日提醒

进销存系统:进货,入库,销售

OA管理系统:比如日程安排

day46 第三个视频一开始有个小总结

约定大约配置!!!!!!!!!!!!!!!!!!!!!!得好好看看 
ruby的纯面向对象 比如 取绝对值 负数也是一个对象

树形目录用的是jquery 插件

图片都在一个image包里面放着

day50开始讲的是权限管理

粗粒度的权限控制(过滤器实现):
判断用户是否登录。要是没有登录,直接重定向到登录页面
要求用户必须登录才可以访问


细粒度的权限控制
菜单版(有什么权限才让其可以看到什么菜单,没有权限的时候
使版块不可见树形目录里的菜单)

同理,还有操作版。进入一个菜单后是否可以进行某些操作。
没有权限的话 对应的操作按钮是不可见的比如(新建,删除)
这个利用自定义标签来实现

没有权限访问的时候就给出提示
 

以下是详细笔记:
用户正确登录后保存用户的信息到session中,然后转发到main.jsp
中间需要一个过滤器来控制。当登录的时候要经过过滤器——判断用户信息
是否存放在session中,是的话放行,不是的话重定向到登录页面

注意要在web.xml里面配置过滤器

当然这个过滤器不能什么都拦截,
比如index.jsp不能被拦截 login.jsp不能被拦截,image.jsp(用于显示验证码)不能被拦截
将不拦截的这些页面写到一个配置文件里面 side.properties

主要代码
public class CheckSessionUserFilter implements Filter {
 private Properties props; 
 //保存不被过滤器拦截的路径
 private List pathList; 
 public void init(FilterConfig filterConfig) throws ServletException {
  try {
   InputStream inStream=CheckSessionUserFilter.class.getClassLoader().getResourceAsStream("side.properties");
  
   props=new Properties();
   props.load(inStream);
   /*
    *  放行的页面
    *   controller_index=/index.jsp
        controller_login=/login.jsp
        controller_image=/image.jsp
        controller_loginAction=/sys/loginAction.do
    */
   pathList=new ArrayList(props.values());
   
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 
 public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
 
  HttpServletRequest res=(HttpServletRequest)request;
  HttpServletResponse req=(HttpServletResponse)response;
  String path=res.getServletPath();
  //如果请求的路径在/index.jsp  login.jsp   /image.jsp /sys/LoginAction.do
  if(pathList!=null&&pathList.contains(path)){
   //放行
   chain.doFilter(request, response);
   return;
  }  
  //获取当前登陆用户
     SysUser sysUser=SessionUtils.getSysUserFromSession(res);
     if(sysUser!=null){
      //放行
   chain.doFilter(request, response);
   return;
     }   
     //重定向到登陆页面
     req.sendRedirect(res.getContextPath());
     
 }
 public void destroy() {

 }
}


细粒度的权限控制 day50第二个视频

这些是有关于权限的控制
00:28:45 把不同角色所拥有的功能制作成表,即操作表  资源表!
模块名称   操作名称(比如增加,删除,修改)     排序     标题    提示    备注
操作表列出了系统的所有功能.其中模块名称   操作名称作为联合组建确保了唯一性

中间表SysUser表

然后再建立一个表——操作权限表(就是用来进行权限控制的)
权限组编号  功能模块名称   功能模块的操作(比如增加,删除)
其中注意这三者作为联合主键
通过这个表让权限和角色挂钩,角色本身又和用户表挂钩

day50第三个视频
在00:29由系统管理员给每个权限组设置权限

原创粉丝点击