【问题标题】:Give view access permission to DNN module when copying the module from another page从另一个页面复制模块时,授予对 DNN 模块的查看访问权限
【发布时间】:2016-09-13 14:00:02
【问题描述】:

我正在从 DNN 的另一个页面复制模块列表。这样做时,我必须为所有用户设置查看权限才能查看模块。甚至其他页面(复制自)模块设置也不同。下面是我设置其他属性的示例。

ModuleInfo newModule = new ModuleInfo();
0newModule.ModuleDefID = module.ModuleDefID;
newModule.AllTabs = false;
newModule.PortalID = PortalId;
newModule.ContentItemId = module.ContentItemId;
newModule.ModuleTitle = module.ModuleTitle;
newModule.PaneName = module.PaneName;
newModule.TabID = NewTabInfo.TabID;
newModule.ContainerSrc = module.ContainerSrc;
newModule.ModuleOrder = module.ModuleOrder;
newModule.DisplayPrint = module.DisplayPrint;
newModule.DisplayTitle = module.DisplayTitle;
newModule.IsShareable = module.IsShareable;
newModule.IsShareableViewOnly = module.IsShareableViewOnly;
newModule.ModulePermissions=module.ModulePermissions;
newModule.IsWebSlice = module.IsWebSlice;
newModule.WebSliceTitle = module.WebSliceTitle;
newModule.Footer = module.Footer;
newModule.Header = module.Header;

【问题讨论】:

    标签: dotnetnuke


    【解决方案1】:

    这里是一个 sn-p,用于在后面的代码中为 dotnetnuke 模块动态添加角色权限。

    //get the current ModuleInfo 
    ModuleInfo newModule = ModuleController.Instance.GetModule(ModuleId, TabId, false);
    //or create a new module
    ModuleInfo newModule = new ModuleInfo();
    
    //clear the old permissions
    newModule.ModulePermissions.Clear();
    
    //add admin view permission
    ModulePermissionInfo modulePermissionInfo1 = new ModulePermissionInfo();
    modulePermissionInfo1.ModuleID = ModuleId;
    modulePermissionInfo1.AllowAccess = true;
    //view permission id, 1 = view, 2 = edit
    modulePermissionInfo1.PermissionID = 1;
    //administrator role id (from Roles table in dnn database)
    modulePermissionInfo1.RoleID = 0;
    
    //add admin edit permission
    ModulePermissionInfo modulePermissionInfo2 = new ModulePermissionInfo();
    modulePermissionInfo2.ModuleID = ModuleId;
    modulePermissionInfo2.AllowAccess = true;
    //view permission id, 1 = view, 2 = edit
    modulePermissionInfo2.PermissionID = 2;
    //administrator role id (from Roles table in dnn database)
    modulePermissionInfo2.RoleID = 0;
    
    //add all users view permission
    ModulePermissionInfo modulePermissionInfo3 = new ModulePermissionInfo();
    modulePermissionInfo3.ModuleID = ModuleId;
    modulePermissionInfo3.AllowAccess = true;
    //edit permission id, 1 = view, 2 = edit
    modulePermissionInfo3.PermissionID = 1;
    //all users role id (from Roles table in dnn database)
    modulePermissionInfo3.RoleID = -1;
    
    //add the ModulePermissionInfo to the module
    newModule.ModulePermissions.Add(modulePermissionInfo1);
    newModule.ModulePermissions.Add(modulePermissionInfo2);
    newModule.ModulePermissions.Add(modulePermissionInfo3);
    
    //save the permissions
    ModulePermissionController.SaveModulePermissions(newModule);
    
    //clear the dnn cache (if it is the current module, not a new one)
    DotNetNuke.Common.Utilities.DataCache.ClearModuleCache(TabId);
    DotNetNuke.Common.Utilities.DataCache.ClearTabsCache(PortalId);
    DotNetNuke.Common.Utilities.DataCache.ClearPortalCache(PortalId, false);
    

    【讨论】:

    • 非常感谢,这对我有很大帮助,我已经解决了我的问题。
    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多