public HttpResponseMessage ListModulesOnPage(int portalId, int tabId) { var apiResponse = new DTO.ApiResponse <List <DTO.GenericListItem> >(); try { var mc = new DotNetNuke.Entities.Modules.ModuleController(); apiResponse.CustomObject = new List <DTO.GenericListItem>(); foreach (var tabModule in mc.GetTabModules(tabId)) { var newGenericItem = new DTO.GenericListItem(); newGenericItem.Name = string.Format("{0} - {1} - {2}", string.IsNullOrWhiteSpace(tabModule.Value.ModuleTitle) ? "No Title" : tabModule.Value.ModuleTitle, tabModule.Value.PaneName, tabModule.Value.ModuleDefinition.FriendlyName); newGenericItem.Value = tabModule.Value.ModuleID.ToString(); apiResponse.CustomObject.Add(newGenericItem); } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage DeletePage(DTO.PageDetails page) { var apiResponse = new DTO.ApiResponse <DTO.SavePageResponse>(); apiResponse.CustomObject = new DTO.SavePageResponse(); try { var tabController = new DotNetNuke.Entities.Tabs.TabController(); var tab = tabController.GetTab(page.Id, PortalSettings.PortalId); if (DotNetNuke.Security.Permissions.TabPermissionController.CanDeletePage(tab) && !DotNetNuke.Entities.Tabs.TabController.IsSpecialTab(tab.TabID, PortalSettings)) { if (tab.TabID == PortalSettings.ActiveTab.TabID) { apiResponse.CustomObject.Redirect = true; apiResponse.CustomObject.Url = DotNetNuke.Common.Globals.NavigateURL(PortalSettings.HomeTabId); } apiResponse.Success = tabController.SoftDeleteTab(tab.TabID, PortalSettings);; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage InstallExtensionUrl(int PageId) { var apiResponse = new DTO.ApiResponse <string>(); try { if (DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo().IsSuperUser) { var objModules = new DotNetNuke.Entities.Modules.ModuleController(); var objModule = objModules.GetModuleByDefinition(-1, "Extensions"); if (objModule != null) { apiResponse.Message = DotNetNuke.Common.Globals.NavigateURL(objModule.TabID, true, PortalSettings, "Install", new string[] { "rtab=" + PageId.ToString() }); } apiResponse.Success = true; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage RecycleApplication() { var apiResponse = new DTO.ApiResponse <bool>(); try { if (DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo().IsSuperUser) { var log = new DotNetNuke.Services.Log.EventLog.LogInfo { BypassBuffering = true, LogTypeKey = DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.HOST_ALERT.ToString() }; log.AddProperty("Message", "Application Recycle triggered from the Control Panel"); DotNetNuke.Services.Log.EventLog.LogController.Instance.AddLog(log); Config.Touch(); apiResponse.Success = true; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage SetUserMode(string mode) { var apiResponse = new DTO.ApiResponse <bool>(); try { switch (mode.ToLower()) { case "view": case "edit": case "layout": var personalizationController = new DotNetNuke.Services.Personalization.PersonalizationController(); var personalization = personalizationController.LoadProfile(UserInfo.UserID, PortalSettings.PortalId); personalization.Profile["Usability:UserMode" + PortalSettings.PortalId] = mode.ToUpper(); personalization.IsModified = true; personalizationController.SaveProfile(personalization); apiResponse.Success = true; break; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ManageUser(DTO.UserDetails user) { var apiResponse = new DTO.ApiResponse <string>(); try { var userController = new DotNetNuke.Entities.Users.UserController(); var dnnUser = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, user.Id); if (dnnUser != null) { var objModules = new DotNetNuke.Entities.Modules.ModuleController(); var objModule = objModules.GetModuleByDefinition(PortalSettings.PortalId, "User Accounts"); if (objModule != null) { apiResponse.CustomObject = DotNetNuke.Common.Globals.NavigateURL(objModule.TabID, false, PortalSettings, "Edit", new string[] { "UserId=" + dnnUser.UserID.ToString(), "mid=" + objModule.ModuleID.ToString() }); apiResponse.Success = true; } } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ListAllPages(int portalId) { var apiResponse = new DTO.ApiResponse <List <DTO.GenericListItem> > (); try { apiResponse.CustomObject = new List <DTO.GenericListItem>(); foreach (var tab in DotNetNuke.Entities.Tabs.TabController.GetPortalTabs(portalId, -1, true, true, false, false)) { var newGenericItem = new DTO.GenericListItem(); newGenericItem.Name = tab.IndentedTabName; newGenericItem.Value = tab.TabID.ToString(); apiResponse.CustomObject.Add(newGenericItem); } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage UnlockUser(DTO.UserDetails user) { var apiResponse = new DTO.ApiResponse <bool>(); try { var userController = new DotNetNuke.Entities.Users.UserController(); var dnnUser = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, user.Id); if (dnnUser != null) { DotNetNuke.Entities.Users.UserController.UnLockUser(dnnUser); DotNetNuke.Common.Utilities.DataCache.RemoveCache("MembershipUser_" + dnnUser.Username); DotNetNuke.Common.Utilities.DataCache.ClearUserCache(PortalSettings.PortalId, dnnUser.Username); apiResponse.Success = true; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ViewUser(DTO.UserDetails user) { var apiResponse = new DTO.ApiResponse <string>(); try { var userController = new DotNetNuke.Entities.Users.UserController(); var dnnUser = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, user.Id); if (dnnUser != null) { apiResponse.CustomObject = DotNetNuke.Common.Globals.UserProfileURL(dnnUser.UserID); apiResponse.Success = true; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage LoadUserDetails(int Id) { var apiResponse = new DTO.ApiResponse <DTO.UserDetails>(); try { var userInfo = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, Id); if (userInfo != null) { apiResponse.CustomObject = new DTO.UserDetails(); apiResponse.CustomObject.Id = userInfo.UserID; apiResponse.CustomObject.UserName = userInfo.Username; apiResponse.CustomObject.DisplayName = userInfo.DisplayName; apiResponse.CustomObject.FirstName = userInfo.FirstName; apiResponse.CustomObject.LastName = userInfo.LastName; apiResponse.CustomObject.EmailAddress = userInfo.Email; apiResponse.CustomObject.LastLogin = userInfo.LastModifiedOnDate; apiResponse.CustomObject.Authorized = userInfo.Membership.Approved; apiResponse.CustomObject.Locked = userInfo.Membership.LockedOut; apiResponse.Success = true; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage Impersonate(int Id) { var apiResponse = new DTO.ApiResponse <bool>(); var impersonationToken = string.Empty; try { var objPortalSecurity = new DotNetNuke.Security.PortalSecurity(); impersonationToken = objPortalSecurity.Encrypt(DotNetNuke.Entities.Host.Host.GUID.ToString(), UserInfo.UserID + ":" + Id); if (Id == 0) { objPortalSecurity.SignOut(); } else { var targetUserInfo = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, Id); if (targetUserInfo != null) { DataCache.ClearUserCache(PortalSettings.PortalId, PortalSettings.UserInfo.Username); objPortalSecurity.SignOut(); DotNetNuke.Entities.Users.UserController.UserLogin(PortalSettings.PortalId, targetUserInfo, PortalSettings.PortalName, HttpContext.Current.Request.UserHostAddress, false); } } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } var actualResponse = Request.CreateResponse <DTO.ApiResponse <bool> >(HttpStatusCode.OK, apiResponse); var cookie = new HttpCookie(Common.impersonationCookieKey, impersonationToken); cookie.Expires = DateTime.Now.AddMinutes(Config.GetAuthCookieTimeout()); cookie.Domain = Request.RequestUri.Host; cookie.Path = "/"; HttpContext.Current.Response.SetCookie(cookie); return(actualResponse); }
public HttpResponseMessage ListParentPages(int id) { var apiResponse = new DTO.ApiResponse <List <DTO.GenericPageListItem> >(); try { var portalId = PortalSettings.PortalId; var tab = new DotNetNuke.Entities.Tabs.TabController().GetTab(id, portalId); if (tab != null) { var listOfPages = DotNetNuke.Entities.Tabs.TabController.GetTabsByParent(tab.ParentId, portalId); apiResponse.CustomObject = new List <DTO.GenericPageListItem>(); foreach (var page in listOfPages.Where(i => i.IsDeleted == false).OrderBy(i => i.TabOrder)) { var newItem = new DTO.GenericPageListItem() { Value = page.TabID.ToString(), Name = page.TabName }; if (string.IsNullOrWhiteSpace(page.IconFileLarge) == false) { newItem.Image = VirtualPathUtility.ToAbsolute(page.IconFileLarge); } else { newItem.Image = string.Empty; } newItem.HasChildren = page.HasChildren; apiResponse.CustomObject.Add(newItem); } apiResponse.Success = true; return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage Impersonate(int Id) { var apiResponse = new DTO.ApiResponse <bool>(); Cookie cookie = null; try { cookie = Common.GenerateImpersonationCookie(UserInfo.UserID, Id); if (Id == 0) { var objPortalSecurity = new DotNetNuke.Security.PortalSecurity(); objPortalSecurity.SignOut(); } else { var targetUserInfo = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, Id); if (targetUserInfo != null) { DataCache.ClearUserCache(PortalSettings.PortalId, PortalSettings.UserInfo.Username); var objPortalSecurity = new DotNetNuke.Security.PortalSecurity(); objPortalSecurity.SignOut(); DotNetNuke.Entities.Users.UserController.UserLogin(PortalSettings.PortalId, targetUserInfo, PortalSettings.PortalName, HttpContext.Current.Request.UserHostAddress, false); } } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } var actualResponse = Request.CreateResponse(HttpStatusCode.OK, apiResponse); actualResponse.Headers.SetCookie(cookie); return(actualResponse); }
public HttpResponseMessage ClearOutputCache(int PageId) { var apiResponse = new DTO.ApiResponse <bool>(); try { foreach (var item in DotNetNuke.Services.OutputCache.OutputCachingProvider.GetProviderList()) { if (PageId == -1) { DotNetNuke.Services.OutputCache.OutputCachingProvider.Instance(item.Key).PurgeCache(PortalSettings.PortalId); DataCache.ClearPortalCache(PortalSettings.PortalId, true); DataCache.ClearCache(); DotNetNuke.Web.Client.ClientResourceManagement.ClientResourceManager.ClearCache(); } else if (PageId == -2) { foreach (DotNetNuke.Entities.Portals.PortalInfo portal in new DotNetNuke.Entities.Portals.PortalController().GetPortals()) { DotNetNuke.Services.OutputCache.OutputCachingProvider.Instance(item.Key).PurgeCache(portal.PortalID); DataCache.ClearPortalCache(portal.PortalID, true); } DataCache.ClearCache(); DotNetNuke.Web.Client.ClientResourceManagement.ClientResourceManager.ClearCache(); } else if (PageId > 0) { DataCache.ClearCache(); DotNetNuke.Services.OutputCache.OutputCachingProvider.Instance(item.Key).Remove(PageId); } } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage SendPasswordReset(DTO.UserDetails user) { var apiResponse = new DTO.ApiResponse <bool>(); try { var userController = new DotNetNuke.Entities.Users.UserController(); var dnnUser = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, user.Id); if (dnnUser != null) { DotNetNuke.Entities.Users.UserController.ResetPasswordToken(dnnUser, DotNetNuke.Entities.Host.Host.AdminMembershipResetLinkValidity); bool canSend = DotNetNuke.Services.Mail.Mail.SendMail(dnnUser, DotNetNuke.Services.Mail.MessageType.PasswordReminder, PortalSettings) == string.Empty; var message = String.Empty; if (canSend) { apiResponse.Success = true; // message = Localization.GetString("PasswordSent", LocalResourceFile); // LogSuccess(); } else { apiResponse.Success = false; //message = Localization.GetString("OptionUnavailable", LocalResourceFile); //moduleMessageType = ModuleMessage.ModuleMessageType.RedError; //LogFailure(message); } } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage LoadConfigurationSettings() { var apiResponse = new DTO.ApiResponse <DTO.ConfigurationResponse>(); try { apiResponse.CustomObject = new DTO.ConfigurationResponse(); apiResponse.CustomObject.DetermineVisibility = DotNetNuke.Entities.Host.Host.AllowControlPanelToDetermineVisibility; apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage Logoff() { var apiResponse = new DTO.ApiResponse <bool>(); try { var ps = new DotNetNuke.Security.PortalSecurity(); ps.SignOut(); apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ListModuleCategories() { var apiResponse = new DTO.ApiResponse <List <DTO.GenericListItem> >(); try { apiResponse.CustomObject = new List <DTO.GenericListItem>(); var termController = DotNetNuke.Entities.Content.Common.Util.GetTermController(); foreach (var term in termController.GetTermsByVocabulary("Module_Categories").OrderBy(t => t.Weight).Where(t => t.Name != "< None >")) { apiResponse.CustomObject.Add(new DTO.GenericListItem() { Value = term.Name.ToLower().Replace(" ", string.Empty), Name = term.Name }); } apiResponse.CustomObject.Add(new DTO.GenericListItem() { Value = "top10", Name = "Top 10" }); apiResponse.CustomObject.Add(new DTO.GenericListItem() { Value = "all", Name = "All" }); apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage LoadPageDetails(int id) { var apiResponse = new DTO.ApiResponse <DTO.PageDetails>(); try { var tc = new DotNetNuke.Entities.Tabs.TabController(); apiResponse.CustomObject = new DTO.PageDetails(tc.GetTab(id, PortalSettings.PortalId)); apiResponse.CustomObject.LoadAllPages(); apiResponse.CustomObject.LoadThemesAndContainers(); apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage UpdateConfiguration(DTO.ConfigurationResponse config) { var apiResponse = new DTO.ApiResponse <DTO.SavePageResponse>(); apiResponse.CustomObject = new DTO.SavePageResponse(); try { if (config.DetermineVisibility != DotNetNuke.Entities.Host.Host.AllowControlPanelToDetermineVisibility) { DotNetNuke.Entities.Controllers.HostController.Instance.Update("AllowControlPanelToDetermineVisibility", config.DetermineVisibility.ToString().ToLower()); } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ListUsers(string filter) { var apiResponse = new DTO.ApiResponse <List <DTO.GenericListItem> >(); try { var listOfUsers = Data.SearchForUsers(PortalSettings.PortalId, filter, 1, 15); apiResponse.CustomObject = new List <DTO.GenericListItem>(); apiResponse.CustomObject.Add(new DTO.GenericListItem() { Value = "0", Name = "Anonymous User" }); foreach (var user in listOfUsers) { apiResponse.CustomObject.Add(new DTO.GenericListItem() { Value = user.UserId.ToString(), Name = user.DisplayName }); } apiResponse.Success = true; return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage SavePage(DTO.PageDetails page) { var apiResponse = new DTO.ApiResponse <DTO.SavePageResponse>(); apiResponse.CustomObject = new DTO.SavePageResponse(); try { //Validation: //Tab name is required //Tab name is invalid string invalidType; if (!DotNetNuke.Entities.Tabs.TabController.IsValidTabName(page.Name, out invalidType)) { switch (invalidType) { case "EmptyTabName": apiResponse.Message = "Page name is required."; break; case "InvalidTabName": apiResponse.Message = "Page name is invalid."; break; } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } var tc = new DotNetNuke.Entities.Tabs.TabController(); var dnnTab = page.Id == -1 ? new DotNetNuke.Entities.Tabs.TabInfo() : tc.GetTab(page.Id, PortalSettings.PortalId); if (dnnTab != null) { dnnTab.TabName = page.Name.Trim(); if (!string.IsNullOrWhiteSpace(page.Title)) { dnnTab.Title = page.Title.Trim(); } if (!string.IsNullOrWhiteSpace(page.Description)) { dnnTab.Description = page.Description.Trim(); } dnnTab.IsVisible = page.Visible; dnnTab.DisableLink = page.Disabled; dnnTab.IsSecure = page.Secure; if (!string.IsNullOrWhiteSpace(page.Theme)) { dnnTab.SkinSrc = page.Theme != "-1" ? page.Theme : string.Empty; } if (!string.IsNullOrWhiteSpace(page.Container)) { dnnTab.ContainerSrc = page.Container != "-1" ? page.Container : string.Empty; } if (page.Id == -1) { var positionTabID = int.Parse(page.Position); var positionModeInt = int.Parse(page.PositionMode); var parentTab = tc.GetTab(positionTabID, PortalSettings.PortalId); if (page.PositionMode == ((int)DTO.PagePositionMode.ChildOf).ToString()) { if (parentTab != null) { dnnTab.PortalID = parentTab.PortalID; dnnTab.ParentId = parentTab.TabID; dnnTab.Level = parentTab.Level + 1; } page.Id = tc.AddTab(dnnTab); } else { dnnTab.PortalID = PortalSettings.PortalId; switch (positionModeInt) { case (int)DTO.PagePositionMode.After: dnnTab.PortalID = parentTab.PortalID; dnnTab.ParentId = parentTab.ParentId; dnnTab.Level = parentTab.Level; page.Id = tc.AddTabAfter(dnnTab, int.Parse(page.Position)); break; case (int)DTO.PagePositionMode.Before: dnnTab.PortalID = parentTab.PortalID; dnnTab.ParentId = parentTab.ParentId; dnnTab.Level = parentTab.Level; page.Id = tc.AddTabBefore(dnnTab, int.Parse(page.Position)); break; default: page.Id = tc.AddTab(dnnTab); break; } } apiResponse.CustomObject.Redirect = true; apiResponse.CustomObject.Url = DotNetNuke.Common.Globals.NavigateURL(page.Id); } else { if (page.PositionMode == ((int)DTO.PagePositionMode.ChildOf).ToString()) { var positionTabID = int.Parse(page.Position); if (positionTabID == -1) { dnnTab.PortalID = PortalSettings.PortalId; dnnTab.ParentId = -1; dnnTab.Level = 0; } else { var parentTab = tc.GetTab(positionTabID, PortalSettings.PortalId); if (parentTab != null) { dnnTab.PortalID = parentTab.PortalID; dnnTab.ParentId = parentTab.TabID; dnnTab.Level = parentTab.Level + 1; } } apiResponse.CustomObject.Redirect = true; apiResponse.CustomObject.Url = DotNetNuke.Common.Globals.NavigateURL(page.Id); } if (!string.IsNullOrWhiteSpace(page.Position) && !string.IsNullOrWhiteSpace(page.PositionMode)) { var positionTabID = int.Parse(page.Position); var positionModeInt = int.Parse(page.PositionMode); var parentTab = tc.GetTab(positionTabID, PortalSettings.PortalId); if (parentTab != null) { switch (positionModeInt) { case (int)DTO.PagePositionMode.After: dnnTab.PortalID = parentTab.PortalID; dnnTab.ParentId = parentTab.ParentId; dnnTab.Level = parentTab.Level; tc.UpdateTab(dnnTab); tc.MoveTabAfter(dnnTab, parentTab.TabID); apiResponse.CustomObject.Redirect = true; apiResponse.CustomObject.Url = DotNetNuke.Common.Globals.NavigateURL(page.Id); break; case (int)DTO.PagePositionMode.Before: dnnTab.PortalID = parentTab.PortalID; dnnTab.ParentId = parentTab.ParentId; dnnTab.Level = parentTab.Level; tc.UpdateTab(dnnTab); tc.MoveTabBefore(dnnTab, parentTab.TabID); apiResponse.CustomObject.Redirect = true; apiResponse.CustomObject.Url = DotNetNuke.Common.Globals.NavigateURL(page.Id); break; case (int)DTO.PagePositionMode.ChildOf: tc.UpdateTab(dnnTab); break; } } else { tc.UpdateTab(dnnTab); } } else { tc.UpdateTab(dnnTab); } } apiResponse.Success = true; } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ListPages(string parent) { var apiResponse = new DTO.ApiResponse <List <DTO.GenericPageListItem> >(); try { var pageId = -2; var portalId = PortalSettings.PortalId; switch (parent.ToLower()) { case "admin": pageId = PortalSettings.AdminTabId; break; case "host": pageId = PortalSettings.SuperTabId; portalId = -1; break; case "all": pageId = -1; break; default: int.TryParse(parent, out pageId); break; } if (pageId > -2) { var listOfPages = DotNetNuke.Entities.Tabs.TabController.GetTabsByParent(pageId, portalId); apiResponse.CustomObject = new List <DTO.GenericPageListItem>(); foreach (var page in listOfPages.Where(i => i.IsDeleted == false).OrderBy(i => i.TabOrder)) { var newItem = new DTO.GenericPageListItem() { Value = page.TabID.ToString(), Name = page.TabName }; if (string.IsNullOrWhiteSpace(page.IconFileLarge) == false) { newItem.Image = VirtualPathUtility.ToAbsolute(page.IconFileLarge); } else { newItem.Image = string.Empty; } newItem.HasChildren = page.HasChildren; apiResponse.CustomObject.Add(newItem); } apiResponse.Success = true; return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage ListPages(string parent) { var apiResponse = new DTO.ApiResponse <List <DTO.GenericPageListItem> >(); try { var pageId = -2; var portalId = PortalSettings.PortalId; switch (parent.ToLower()) { case "admin": pageId = PortalSettings.AdminTabId; break; case "host": pageId = PortalSettings.SuperTabId; portalId = -1; break; case "all": pageId = -1; break; default: int.TryParse(parent, out pageId); break; } if (pageId > -2) { var listOfPages = DotNetNuke.Entities.Tabs.TabController.GetTabsByParent(pageId, portalId); apiResponse.CustomObject = new List <DTO.GenericPageListItem>(); foreach (var page in listOfPages.Where(i => i.IsDeleted == false).OrderBy(i => i.TabOrder)) { var newItem = new DTO.GenericPageListItem() { Value = page.TabID.ToString(), Name = page.TabName }; var localizedPageName = DotNetNuke.Services.Localization.Localization.GetString(page.TabPath + ".String", DotNetNuke.Services.Localization.Localization.GlobalResourceFile); if (!string.IsNullOrWhiteSpace(localizedPageName)) { newItem.Name = localizedPageName; } if (string.IsNullOrWhiteSpace(page.IconFileLarge) == false) { var iconPath = page.IconFileLarge; if (iconPath.StartsWith("~/icons/sigma/", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/" + iconPath.Substring(14); } else if (iconPath.StartsWith("~/desktopmodules/DevicePreviewManagement/images/", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/" + iconPath.Substring(48); } else if (iconPath.StartsWith("~/desktopmodules/MobileManagement/images/", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/" + iconPath.Substring(41); } else if (iconPath.StartsWith("~/DesktopModules/Admin/FiftyOneClientCapabilityProvider/Images/", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/" + iconPath.Substring(62); } else if (iconPath.StartsWith("~/DesktopModules/Admin/HtmlEditorManager/images/", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/" + iconPath.Substring(47); } else if (iconPath.Equals("~/images/icon_dashboard_32px.gif", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/dashboard_32x32_standard.png"; } else if (iconPath.Equals("~/images/icon_extensions_32px.gif", StringComparison.InvariantCultureIgnoreCase)) { iconPath = "~/desktopmodules/nbrane/administrationsuite/images/pageicons/Extensions_32x32_Standard.png"; } newItem.Image = VirtualPathUtility.ToAbsolute(iconPath); } else { newItem.Image = string.Empty; } newItem.HasChildren = page.HasChildren; apiResponse.CustomObject.Add(newItem); } apiResponse.Success = true; return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage RevertImpersonation() { var apiResponse = new DTO.ApiResponse <bool>(); CookieHeaderValue cookie = null; var impersonationToken = string.Empty; try { var objPortalSecurity = new DotNetNuke.Security.PortalSecurity(); var impersonationCookie = Common.GetUserImpersonationCookie().Split(':'); var Id = 0; var currentId = 0; int.TryParse(impersonationCookie.First(), out Id); int.TryParse(impersonationCookie.Last(), out currentId); if (currentId == 0 && UserInfo.UserID == -1) { currentId = -1; } if (Id == 0 || UserInfo.UserID != currentId) { objPortalSecurity.SignOut(); } else { var targetUserInfo = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, Id); if (targetUserInfo != null) { DataCache.ClearUserCache(PortalSettings.PortalId, PortalSettings.UserInfo.Username); objPortalSecurity.SignOut(); DotNetNuke.Entities.Users.UserController.UserLogin(PortalSettings.PortalId, targetUserInfo, PortalSettings.PortalName, HttpContext.Current.Request.UserHostAddress, false); } } apiResponse.Success = true; } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } var actualResponse = Request.CreateResponse <DTO.ApiResponse <bool> >(HttpStatusCode.OK, apiResponse); var newcookie = new HttpCookie(Common.impersonationCookieKey, impersonationToken); newcookie.Expires = DateTime.Now.AddMinutes(-60); newcookie.Domain = Request.RequestUri.Host; newcookie.Path = "/"; HttpContext.Current.Response.SetCookie(newcookie); return(actualResponse); }
public HttpResponseMessage SaveUser(DTO.UserDetails user) { var apiResponse = new DTO.ApiResponse <bool>(); try { var userController = new DotNetNuke.Entities.Users.UserController(); if (user.Id == -1) { if (!DotNetNuke.Entities.Users.UserController.ValidatePassword(user.Password)) { apiResponse.Success = false; apiResponse.Message = "Invalid Password"; return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } //new user var dnnUser = new DotNetNuke.Entities.Users.UserInfo(); dnnUser.Username = user.UserName; dnnUser.FirstName = user.FirstName; dnnUser.LastName = user.LastName; dnnUser.DisplayName = user.DisplayName; dnnUser.Email = user.EmailAddress; dnnUser.PortalID = PortalSettings.PortalId; dnnUser.Membership.Password = user.Password; dnnUser.Membership.Approved = true; DotNetNuke.Entities.Users.UserController.CreateUser(ref dnnUser); apiResponse.Success = true; } else { //existing user var dnnUser = DotNetNuke.Entities.Users.UserController.GetUserById(PortalSettings.PortalId, user.Id); if (dnnUser != null) { //dnnUser.Username = user.UserName; dnnUser.FirstName = user.FirstName; dnnUser.LastName = user.LastName; dnnUser.DisplayName = user.DisplayName; dnnUser.Email = user.EmailAddress; //dnnUser.Membership.Password = user.Password; DotNetNuke.Entities.Users.UserController.UpdateUser(PortalSettings.PortalId, dnnUser); apiResponse.Success = true; } } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }
public HttpResponseMessage SaveModule(DTO.ModuleDetails module) { var apiResponse = new DTO.ApiResponse <int>(); try { int iPosition = -1; switch (module.Position.ToUpper()) { case "TOP": iPosition = 0; break; case "ABOVE": if (string.IsNullOrEmpty(module.ModuleInstance) == false) { iPosition = int.Parse(module.ModuleInstance) - 1; } break; case "BELOW": if (string.IsNullOrEmpty(module.ModuleInstance) == false) { iPosition = int.Parse(module.ModuleInstance) + 1; } break; case "BOTTOM": iPosition = -1; break; } if (module.CreateAs == "copy") { if (module.Container == "-1") { module.Container = string.Empty; } Common.AddModuleCopy(module.ModuleId, module.PageId, iPosition, module.Location, module.Container); apiResponse.Success = true; } else if (module.CreateAs == "link") { if (module.Container == "-1") { module.Container = string.Empty; } Common.AddExistingModule(module.ModuleId, module.PageId, module.Location, iPosition, "", module.Container); apiResponse.Success = true; } else { List <int> lstNewModules = new List <int>(); var objTabPermissions = PortalSettings.ActiveTab.TabPermissions; var objPermissionController = new DotNetNuke.Security.Permissions.PermissionController(); var objModules = new DotNetNuke.Entities.Modules.ModuleController(); var objEventLog = new DotNetNuke.Services.Log.EventLog.EventLogController(); int j = 0; try { DotNetNuke.Entities.Modules.DesktopModuleInfo desktopModule = null; if (!DotNetNuke.Entities.Modules.DesktopModuleController.GetDesktopModules(PortalSettings.PortalId).TryGetValue(module.Module, out desktopModule)) { apiResponse.Message = "desktopModuleId"; return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); } } catch (Exception ex) { //LogException(ex); } int UserId = UserInfo.UserID; foreach (var objModuleDefinition in DotNetNuke.Entities.Modules.Definitions.ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(module.Module).Values) { var objModule = new DotNetNuke.Entities.Modules.ModuleInfo(); objModule.Initialize(PortalSettings.PortalId); objModule.PortalID = PortalSettings.PortalId; objModule.TabID = PortalSettings.ActiveTab.TabID; objModule.ModuleOrder = iPosition; if (string.IsNullOrEmpty(module.Title) == true) { objModule.ModuleTitle = objModuleDefinition.FriendlyName; } else { objModule.ModuleTitle = module.Title; } if (!string.IsNullOrEmpty(module.Container) && module.Container != "-1") { objModule.ContainerSrc = module.Container; } objModule.PaneName = module.Location; objModule.ModuleDefID = objModuleDefinition.ModuleDefID; if (objModuleDefinition.DefaultCacheTime > 0) { objModule.CacheTime = objModuleDefinition.DefaultCacheTime; if (PortalSettings.DefaultModuleId > Null.NullInteger && PortalSettings.DefaultTabId > Null.NullInteger) { var defaultModule = objModules.GetModule(PortalSettings.DefaultModuleId, PortalSettings.DefaultTabId, true); if ((defaultModule != null)) { objModule.CacheTime = defaultModule.CacheTime; } } } switch (module.Visibility) { case 0: objModule.InheritViewPermissions = true; break; case 1: objModule.InheritViewPermissions = false; break; case 2: objModule.InheritViewPermissions = false; break; case 3: objModule.InheritViewPermissions = false; break; case 4: objModule.InheritViewPermissions = false; break; } // get the default module view permissions var arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); // get the permissions from the page foreach (DotNetNuke.Security.Permissions.TabPermissionInfo objTabPermission in objTabPermissions) { if (objTabPermission.PermissionKey == "VIEW" && module.Visibility == 0) { //Don't need to explicitly add View permisisons if "Same As Page" continue; } // get the system module permissions for the permissionkey var arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey); // loop through the system module permissions for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++) { // create the module permission DotNetNuke.Security.Permissions.PermissionInfo objSystemModulePermission = null; objSystemModulePermission = (DotNetNuke.Security.Permissions.PermissionInfo)arrSystemModulePermissions[j]; if (objSystemModulePermission.PermissionKey == "VIEW" && module.Visibility == 1 && objTabPermission.PermissionKey != "EDIT") { //Only Page Editors get View permissions if "Page Editors Only" continue; } var objModulePermission = Common.AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); // ensure that every EDIT permission which allows access also provides VIEW permission if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess) { var objModuleViewperm = Common.AddModulePermission(objModule, (DotNetNuke.Security.Permissions.PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true); } } //Get the custom Module Permissions, Assume that roles with Edit Tab Permissions //are automatically assigned to the Custom Module Permissions if (objTabPermission.PermissionKey == "EDIT") { var arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID); // loop through the custom module permissions for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++) { // create the module permission DotNetNuke.Security.Permissions.PermissionInfo objCustomModulePermission = null; objCustomModulePermission = (DotNetNuke.Security.Permissions.PermissionInfo)arrCustomModulePermissions[j]; Common.AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); } } } objModule.AllTabs = false; //objModule.Alignment = align; apiResponse.CustomObject = objModules.AddModule(objModule); apiResponse.Success = true; } } } catch (Exception err) { apiResponse.Success = false; apiResponse.Message = err.Message; Exceptions.LogException(err); } return(Request.CreateResponse(HttpStatusCode.OK, apiResponse)); }