Beispiel #1
0
  private void initCRMRole() {
    List<ResourceType> rts = session.createQuery("from ResourceType rt").list();

    Map<String, ResourceType> rtMap = new HashMap<String, ResourceType>();
    for (ResourceType rt : rts) {
      rtMap.put(rt.getName(), rt);
    }

    List<Menu> menus = session.createQuery("from Menu m where m.scope = 'crm'").list();
    Map<String, Menu> menuMap = new HashMap<String, Menu>();
    for (Menu menu : menus) {
      menuMap.put(menu.getPath(), menu);
    }

    //		Role admin = new Role();
    //		admin.setName("系统管理员");
    //		admin.setSysAdmin(true);
    //		admin.setCode(Role.ROLE_ADMIN);
    //		admin.setDescription("拥有系统管理的权限");
    //		admin.addMenu(menuMap.get("系统管理"));
    //		admin.addMenu(menuMap.get("系统管理/企业管理"));
    //		admin.addMenu(menuMap.get("系统管理/用户管理"));
    //		session.save(admin);

    SubSystemDefinition ssd =
        (SubSystemDefinition)
            session
                .createQuery("from SubSystemDefinition ssd where ssd.code = 'crm'")
                .uniqueResult();
    Role account = new Role();
    account.setName("账户管理");
    account.setCode(Role.ROLE_CODE_CRM_ACCOUNT);
    account.setDescription("拥有账户管理的权限");
    account.setSubSystem(ssd);
    account.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CRMACCOUNT), "*"));
    account.addMenu(menuMap.get("账户管理"));
    account.addMenu(menuMap.get("账户管理/用户管理"));
    account.addMenu(menuMap.get("账户管理/部门管理"));
    account.addMenu(menuMap.get("账户管理/数据字典管理"));
    account.addMenu(menuMap.get("账户管理/客户完整度管理"));
    account.setType("company|agency|provider");
    account.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT));
    session.save(account);

    Role sell = new Role();
    sell.setName("销售人员");
    sell.setCode(Role.ROLE_CODE_CRM_SELL);
    sell.setDescription("拥有销售机会管理的权限");
    sell.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), "*"));
    sell.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_SELL), "*"));
    //		sell.addMenu(menuMap.get("客户管理"));
    //		sell.addMenu(menuMap.get("客户管理/客户管理"));
    //		sell.addMenu(menuMap.get("客户管理/联系人管理"));
    //		sell.addMenu(menuMap.get("客户管理/客户关怀"));
    //		sell.addMenu(menuMap.get("客户管理/客户所有人查询"));
    //		sell.addMenu(menuMap.get("销售管理"));
    //		sell.addMenu(menuMap.get("销售管理/销售机会管理"));
    //		sell.addMenu(menuMap.get("销售管理/合同管理"));
    sell.setSubSystem(ssd);
    sell.setType("company|agency|provider");
    sell.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT));
    session.save(sell);

    Role customService = new Role();
    customService.setName("客户服务");
    customService.setCode(Role.ROLE_CODE_CRM_SERVICE);
    customService.setDescription("拥有客户服务管理的权限");
    customService.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), "*"));
    //		customService.addMenu(menuMap.get("客户管理"));
    //		customService.addMenu(menuMap.get("客户管理/客户管理"));
    //		customService.addMenu(menuMap.get("客户管理/联系人管理"));
    //		customService.addMenu(menuMap.get("客户管理/客户关怀"));
    //		customService.addMenu(menuMap.get("客户管理/客户所有人查询"));
    //		customService.addMenu(menuMap.get("客服管理"));
    //		customService.addMenu(menuMap.get("客服管理/通话记录管理"));
    customService.setSubSystem(ssd);
    customService.setType("company|agency|provider");
    customService.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT));
    session.save(customService);

    //		Role resourceManager = new Role();
    //		resourceManager.setName("资源管理");
    //		resourceManager.setCode(Role.RESOURCE_MANAGER);
    //		resourceManager.setDescription("拥有资源审批的权限");
    //		resourceManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER),
    // "*"));
    //		resourceManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_SELL), "*"));
    //		resourceManager.addMenu(menuMap.get("客户管理"));
    //		resourceManager.addMenu(menuMap.get("客户管理/客户管理"));
    //		resourceManager.addMenu(menuMap.get("客户管理/联系人管理"));
    //		resourceManager.addMenu(menuMap.get("客户管理/客户关怀"));
    //		resourceManager.addMenu(menuMap.get("客户管理/客户关怀"));
    //		resourceManager.addMenu(menuMap.get("客户管理/客户所有人查询"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户类型分布"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户来源分布"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户行业分布"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户规模分布"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/销售进程分布"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/销售机会所有人分布"));
    //		resourceManager.addMenu(menuMap.get("客户管理/统计分析/预计金额分布"));
    //		resourceManager.addMenu(menuMap.get("销售管理"));
    //		resourceManager.addMenu(menuMap.get("销售管理/销售机会管理"));
    //		resourceManager.addMenu(menuMap.get("销售管理/合同管理"));
    //		session.save(resourceManager);

    Role sellManager = new Role();
    sellManager.setName("销售管理");
    sellManager.setCode(Role.ROLE_CODE_CRM_MANAGER);
    sellManager.setDescription("拥有销售管理的权限");
    sellManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), "*"));
    sellManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_SELL), "*"));
    sellManager.addMenu(menuMap.get("客户管理"));
    sellManager.addMenu(menuMap.get("客户管理/客户管理"));
    sellManager.addMenu(menuMap.get("客户管理/联系人管理"));
    sellManager.addMenu(menuMap.get("客户管理/客户关怀"));
    sellManager.addMenu(menuMap.get("销售管理"));
    sellManager.addMenu(menuMap.get("销售管理/销售机会管理"));
    sellManager.addMenu(menuMap.get("销售管理/合同管理"));
    //		sellManager.addMenu(menuMap.get("销售管理/统计报表"));
    //		sellManager.addMenu(menuMap.get("销售管理/统计报表/呼叫统计"));
    //		sellManager.addMenu(menuMap.get("销售管理/统计报表/广告分析统计"));
    //		sellManager.addMenu(menuMap.get("销售管理/统计报表/销售分析统计"));
    //		sellManager.addMenu(menuMap.get("销售管理/统计报表/客户分析统计"));
    sellManager.addMenu(menuMap.get("客服管理"));
    sellManager.addMenu(menuMap.get("客服管理/通话记录管理"));
    sellManager.setSubSystem(ssd);
    sellManager.setType("company|agency|provider");
    sellManager.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT));
    session.save(sellManager);
  }