www.dnnworkflow.cn

在DotNetNuke中加入组织架构(三)


    当我们将组织架构的功能开发完成之后,就可以在系统中添加组织架构了。
    在 这里,有一点需要抱怨一下DotNetNuke,并且赞扬一下Joomla等CMS,Joomla和Drupal都是可以比较方便的增加管理模块的,也就 是非普通模块,而是后台管理的模块,如果大家到Joomla的网站上去看一下它的Extentions的话,就可以发现Joomla有多少管理模块了;但 是——,也可能是因为我的无知,我还不知道如何将我的某一个功能添加到DotNetNuke的“主机管理”或者“网站管理”的菜单下面,使之堂而皇之的成 为后台管理的一部分。当然,并不是DotNetNuke没有这部分的功能,我们在页面的继承IActionable.ModuleActions的时候, 完全可以指定某个菜单的权限为DotNetNuke.Security.SecurityAccessLevel.Admin或者是 DotNetNuke.Security.SecurityAccessLevel.Host,这样,就限定我们添加的菜单的权限只有主机管理员或者是网 站管理员才能够使用。但是,对于门户内统一的架构,其实不必从某一个模块进入,从“网站管理”进入,似乎更为合理一些。

    在(二)中,我们给出了Department的数据结构(以下结构只是一部分,如果需要完整的数据结构,请参照《在DotNetNuke中加入组织架构(二)》:

        CREATE TABLE {databaseOwner}[{objectQualifier}RedStart_Department]
        (
            [DeptID] [int] NOT NULL IDENTITY(1, 1),
            [PortalID] [int] NOT NULL,
            [ParentID] [int] NULL,
            [DeptName] [nvarchar] (50) NOT NULL,
            [DeptDescribe] [nvarchar] (200) NULL,
            [DeptOrder] [int] NOT NULL,
            [IsValid] [bit] NOT NULL DEFAULT(1),
            [IsDept] [bit] NOT NULL DEFAULT(1),
            [CreateDate] [datetime] NULL ,
            [CreateUser] [int] NULL ,
        )

    大家可以看到,和一般的模块不同,在我们的数据结构中,没有一般模块都会有的ModuleID,而有 PortalID,这就说明了,我们的组织架构的数据结构,是整个Portal通用的,和某个模块完全无关,因为我们希望我们的这个结构可以为所有的模块 所用(如果可以的话),相对来说,比模块的数据结构要高一个级别,这就是为什么我们希望这个功能(如果单独列为一个功能的话)可以在网站管理中出现。

    类似的需求应该是很多的,所以,DotNetNuke的后台管理的模块,应该也可以由程序员自行添加才对。

    好了,以上只是一点牢骚而已,为了使用这个功能,我们仍然从模块的菜单进入,也就是说,为了使用这个功能,我们要有至少一个模块,然后点击模块的快捷菜单,调出此功能。
    由于功能较多,所以,我在进入之后,又增加了一层功能的选择
    我们最终出现的组织架构,可能是如下图所示这样:


    在进行管理的时候,可以无限层级的增加,并且可以将暂时不需要的机构禁用掉。树形的架构比DotNetNuke的安全角色更符合我们的实际情况。

    而用户管理则是要对我们的另外一个数据结构,也就是“组织结构—用户表”进行维护了,如下图所示:
(人员管理,为了体现DNN的多语言,我们特意截取了一个E文版界面)

    有了这几个界面,我们基本上就完成了从组织架构,到人员从属的整个管理功能了。

    这个模块仍然有改进的空间,我很喜欢DotNetNuke的这个功能
    Auto Assignment,也就是自动分配功能。假设我们有一个“全体用户”的组,如果有这个功能的话,那么新增加的用户(无论是管理员添加还是用户自行注 册)都可以自动放到这个组中,那岂不是对我们来说方便了很多?不过,Auto Assignment的实现机制还没有仔细研究,估计是可能要和用户添加的一些事件进行关联的了,日后弄明白了可以添加上该功能。
 posted on 2008-10-25 00:17  DnnWorkflow  阅读(477)  评论(1编辑  收藏  举报