2017-02-09 127 views
0

我們已將DNN 7.1.2專業版升級到DNN 9.0.1。升級進行順利,沒有任何錯誤。但是,訪問升級後的網站時,沒有任何模塊正在加載頁面。同時我想強調正確的皮膚菜單等被加載。調試了很多後,我可以通過名稱DotNetNuke.Profession.dll找到他在dll中的問題。這個dll有一個名爲GranularPermissionProvider的類,它根據當前的用戶權限檢查模塊是否需要顯示在頁面上。罪魁禍首碼似乎是以下:從DNN 7.1.2升級到DNN 9.0.1後DNN頁面缺少模塊

GranularPermissionProvider.cs

//代碼在DotNetNuke.Professional

public override bool CanViewModule(ModuleInfo module) 
{ 
    if (!this.Application.HasActiveLicenseOrIsTrial) 
    return base.CanViewModule(module); 
    if (!PortalSecurity.IsInRoles(module.ModulePermissions.ToString("VIEW"))) 
    return PortalSecurity.IsInRoles(module.ModulePermissions.ToString("EDIT")); 
    return true; 
} 

而在底座上的代碼PermissionProvider.cs類是如以下。

/// <summary> 
/// Returns a flag indicating whether the current user can view a module 
/// </summary> 
/// <param name="module">The page</param> 
/// <returns>A flag indicating whether the user has permission</returns> 

public virtual bool CanViewModule(ModuleInfo module) 
{ 
    bool canView; 
    if (module.InheritViewPermissions) 
    { 
     TabInfo objTab = TabController.Instance.GetTab(module.TabID, module.PortalID, false); 
     canView = TabPermissionController.CanViewPage(objTab); 
    } 
    else 
    { 
     canView = PortalSecurity.IsInRoles(module.ModulePermissions.ToString(ViewModulePermissionKey)); 
    } 
    return canView; 
} 

如果你仔細觀察的基礎代碼檢查模塊繼承頁面權限或沒有被完全從GranularPermissionProvider類失蹤。我懷疑這是由於哪些模塊未被加載而引起的問題。我想知道是否有相同的修補程序?

回答

0

您是否已從DNN Professional(或Evoq)升級到DNN的社區版?如果是這樣,可能還有其他問題需要處理。當然權限的東西可能是其中之一。

您可以嘗試訪問「頁面」管理功能。這應該會顯示你所有頁面的列表。您可以訪問它們,並且應該能夠看到已安裝模塊的列表,並且您應該能夠在那裏編輯模塊權限。

您也可以安裝Oliver Hine(oliverhine.com)權限提供程序,該提供程序與Evoq中提供的DNN功能相同。

只是一些想法...