随笔-39  评论-33  文章-0  trackbacks-0

newxy 标签实现部门管理、用户权限管理

作者: 胡立新

一、功能简介

这个工程演示了部门管理、用户权限管理,没有使用角色这一环。在系统权限和用户身份不是很复杂的环境下这种运用是对用户权限管理的可行办法。

相关用语说明如下:

 1 、顶级部门,相对于部门来说的,是部门的上一级,一个系统有一个顶级部门。

 2 、部门,相对于顶级部门来说明的,是顶级部门的分支,一个系统有多个部门(结合“顶级部门”的说明有循环定义之嫌,此处的说明方法暂理解成“参验”)。

 3 、用户,软件系统的操作人员,有系统管理员,业务人员,系统管理员只有一个,业务人员可有多个,可有不同的权限。

 4 、业务,通常说成事务、商业功能模块。为避免与数据的“事务”概念相混淆,用“业务”一词。一个系统可有多个业务。

 5 、用户 业务,指特定用户与可操作的业务之间的关联。一个用户可操作多项业务,但不同用户对同一项业务操作权限的细分 ( 增、删、改、查等 ) 可能不同。对公共业务不必登记,用户操作时不必作权限检查。

以上用语对应数据库的四个表,“项级部门”、“部门”对应同一个表。

下面是数据库表间关系图(略)


    这个工程的用户由管理员建立,如果由用户自己注册应作修改。

管理员分配好用户权限后,用户登录时可将相关权限读出保存到会话中或某个单例中,用户操作业务时,对其是否有权限作出判断。这工作由运用系统的开发者去完成。

二、目的

建立这个工程的最主要目的是演示如何将 newxy 新坐标的标签用于开发中。次要目的是作为一个可以复用的功能模块供开发者使用,如果开发者面对的是一个权限及用户身份不很复杂的情况,可以将这个工程作为部门及用户权限管理模块。

这个工程有一个类,是为初始化系统及刷新 web 上下文设计的。该类有三个共有方法,两个较重要:

    public static void contextInitialized(PageContext pageContext)throws Exception

    public static void contextInitialized(ServletContext context)throws Exception

条一个方法供 jsp 页面或标签调用,如:

    <%

         net.newxy.model.dub.Initial.contextInitialized(pageContext);

%>

第二个方法供后台 java 代码调用。 Web 服务器启动时应调用此方法,如:

import javax.servlet.*;

import javax.servlet.http.*;

public class ListenerSetCodes extends HttpServlet implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {

        javax.servlet.ServletContext context=sce.getServletContext();

        try{

       net.newxy.model.dub.Initial.contextInitialized(context);

     }catch(Exception e){

    ……

}

    }

    ……

}

本工程因为要便于开发者复用,对这个类的方法调用放在 jsp 文件中,而不是放在 struts action 中。开发者应在 web 服务器启动时调用第二个方法。

三、流程

1 、系统部署后首先将“顶级部门”改为客户单位名。

2 、增加或修改部门,已有的部门不能删除,如果不用,可以掛起(非激活状态)。

3 、定义业务,业务是运用系统的功能模块简称,这种简称是开发人员与客户共同理解的。

以上应由开发人员在系统部署后定义。

以下由系统管理员完成

4 、为每个部门建立用户,也可修改用户信息,包括所属部门。

5 、为每个用户选择他可以操作的业务,并细化每个业务的操作权限(数据的增、删、改、查等)。

对第 5项的详细说明:

(1) 用户查询,管理员可通过用户的用户帐号关键字查询,用户姓名关键字查询,按部门查询,列出所有用户,也可将这几项结合在一起构成多条件查询;

(2) 从查询所得列表中选择一用户,列出未分配业务和已分配业务;

(3) 点击未分配业务,这项业务从未分配列表中删除,列入已分配业务列表中;

(4) 细化业务权限,选择已分配某业务,对该项业务涉及的增、删、改、查是否有权限给以设定。

(5) 如果用户不应有某项业务,点击“删除”按钮,将这个业务从已分配业务列表中删除,这项业务又回到未分配业务列表中。

(6) 在对某一用户进行业务分配和权限设置时,用户列表中该用户始终有较深的光带与其它用户区别开来。

这里涉及到所有四个表,如果用经典的前后台化工,开发起来会是极其麻烦,用 newxy 标签,只需三个 jsp 文件,其中的两个包含在另一个中,可以只用一个 jsp 文件,页面极其简洁。

大家可以想一想,在开发自助餐式的动态网站时,因为不需写 java代码实现增、删、改、查、文件上传、数据分页,动态写几个 jsp文件不就轻松实现了吗?

四、使用方法

1 、进入 newxy 新坐标网站 http://www.newxy.net 下载《部门管理及用户权限管理》。

2 、工程用的是 mysql4.1 数据库,数据库名 newxy ,用户名 root ,口令 mysql 。用 sql 文件夹下的 sql 文件内容建立几个表。配置见 src 目录下 newxy.properties 文件。

     3 myWeb.war 文件是 war 文件,可直接拷到 tomcat apps 文件夹下。        

4 、解压下载文件得文件夹 userRight ,这是个 jbuilder2005 的工程文件夹。

5 、用 jbuilder2005 打开工程后,应进入 Tools->Configure->Libraries ,新建一 library ,名为 myLib ,引用 userRight 文件夹下 lib 内的 jar 文件。

6 usreRight 下的 lib 中有个 newxy.1.065.jar 文件,是在 newxy.1.06 版的基础上修正了 <nhtml:select /> 标签的一个小问题后的包。 newxy1.065.jar 没有发布(截至 06 10 6 )。

 

 

工程下载: http://www.newxy.net/zh_cn/download/index.jsp

在线演示: http://demo.newxy.net/userRight/index.jsp

posted on 2006-10-10 00:42 newxy新坐标 阅读(1631) 评论(2)  编辑  收藏

评论:
# re: newxy标签实现部门管理、用户权限管理 2006-10-11 10:13 | 123bingbing
答问题,接项目,赢积分,换大奖,www.mylinux.com.cn国内最大的网上软件加工厂,提供最完善的软件外包服务,采用流水型操作流程。
  回复  更多评论
  
# re: newxy标签实现部门管理、用户权限管理 2006-10-13 15:34 | 1
如果你是编程高手,这里将是你一个展现自我的新舞台----www.mylinux.com.cn
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: