Dave,
Thanks for jumping in. Your Module was very close to what i want to do, but i noticed 3 shorcomings.
I will explain the shortcomings later, but first here is what i want to achieve.
I want to use Portal Signup Module where users create their own website with specific template(s) that i have created for them. Therefore, depending on the theme, they select only one template at the beginning of the site creation. They don't need the "wizard" option in the menu. That is one of the items i want to restrict. It will also be in their benefits because when you use the "site wizard" there is the potential for them to wipe out their site if they are not careful (i..e if they check "replace" for instance). I also want to remove few other admin options (Site Log, Event Viewer, Skins). I have two options. One option is to let the user become admin through portal signup by default and therefore let them be "admins" with the limitations i have setup. I saw TRTCONTROLPANEL allows to freeze certain icons in control panel and also choose the admin options. The other option i have is to create a role called "Site Owners" and create a page called "Site Admin". Then i can put the needed admin options on that page. TRTCONTROLPANEL also allows to assigns some permissions to "site owners" role. I have noticed all this while checking TRTcontrolpanel module with 4.8.0. But then when i was playing with the newly released 4.8.1, the General Settings of the Control Panel Setup will not work at all.
Here are the shortcoming of the TRTControlPanel. I wish you can tell me how to go around these and still continue testing it with the DNN 4.8.1
1. As opposed to standard dnn control panel, you don't have clear "View", "Edit" and "Design" modes. I noticed you have to click on "Design" several times, then "Preview" few more times, then "Design" again to get the three modes. You can tell only by watching how the screen view changes and realize whether you are in "view", "Edit" or "Design" mode.
2. In common tasks, you don't have "Roles"
3. When i cliked on "Contral Panel Setup", you can't go to "General Settings". You get the following error.
Error: is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: The file '/DeskTopModules/TRTControlPanel/controls/LabelControl.ascx' does not exist. ---> System.Web.HttpParseException: The file '/DeskTopModules/TRTControlPanel/controls/LabelControl.ascx' does not exist. ---> System.Web.HttpParseException: The file '/DeskTopModules/TRTControlPanel/controls/LabelControl.ascx' does not exist. ---> System.Web.HttpException: The file '/DeskTopModules/TRTControlPanel/controls/LabelControl.ascx' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.UI.BaseTemplateParser.GetReferencedType(VirtualPath virtualPath, Boolean allowNoCompile) at System.Web.UI.BaseTemplateParser.GetUserControlType(VirtualPath virtualPath) at System.Web.UI.MainTagNameToTypeMapper.ProcessUserControlRegistration(UserControlRegisterEntry ucRegisterEntry) at System.Web.UI.BaseTemplateParser.ProcessDirective(String directiveName, IDictionary directive) at System.Web.UI.TemplateControlParser.ProcessDirective(String directiveName, IDictionary directive) at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) --- End of inner exception stack trace --- at System.Web.UI.TemplateParser.ProcessException(Exception ex) at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) --- End of inner exception stack trace --- at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) at System.Web.UI.TemplateParser.ParseInternal() at System.Web.UI.TemplateParser.Parse() at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at System.Web.UI.TemplateControl.LoadControl(String virtualPath) at TRT.DNN.Modules.ControlPanel.UI.ControlPanelEdit.Page_Load(Object sender, EventArgs e) --- End of inner exception stack trace ---