程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 在DotNetNuke中加入組織架構(三)

在DotNetNuke中加入組織架構(三)

編輯:關於ASP.NET

當我們將組織架構的功能開發完成之後,就可以在系統中添加組織架構了。

在這裡,有一點需要抱怨一下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的實現機制還沒有仔細研究,估計是可能要和用戶添加的一些事件進行關聯的了,日後弄明白了可以添加上該功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved