最近编写授权页面,特别繁琐。共有三块权限。包括模块,菜单,和任务。关系为模块下面有菜单,菜单下面有任务。
因为模块很少也就四五个。但是菜单却是一种树形的结构。授权非常繁琐。菜单下面还包括任务。因为菜单下面有很多的任务。但是任务不是树形的结构。
首先树形结构我选择了dtree.因为它的功能用起来还是比较强大的。可以和checkbox结合。正好符合授权。
数据库模型。包括。模块(逻辑主键,角色id,模块id等等)
菜单(逻辑主键,角色id,菜单id等等)
任务(逻辑主键,角色id,任务id等等)
首先在给模块授权的时候。需要将模块下的权限和提交的权限进行比对。如果模块权限有的,而提交的没有。则将差值进行处理。处理过程。首先先要删除任务下的所有权限。然后删除菜单权限以及模块权限。如果提交的值为空。则将所有的任务以及菜单下的值都删除。
同样的菜单处理和模块处理类似。但是加入了树就相对比较复杂了,首先需要将以前原有的树的权限进行删除。然后再添加新的权限。
任务比较简单。需要先删除菜单下的所有任务。然后再添加。