public ActionResult ApproveGroup(int notificationId) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(notificationId, UserInfo.UserID); if (recipient == null) return Json(new { Result = "error" }); var notification = NotificationsController.Instance.GetNotification(notificationId); ParseKey(notification.Context); if (roleInfo == null) { return Json(new { Result = "error" }); } if (!IsMod()) { return Json(new { Result = "access denied" }); } var roleController = new RoleController(); roleInfo.Status = RoleStatus.Approved; roleController.UpdateRole(roleInfo); var roleCreator = UserController.GetUserById(PortalSettings.PortalId, roleInfo.CreatedByUserID); //Update the original creator's role roleController.UpdateUserRole(PortalSettings.PortalId, roleCreator.UserID, roleInfo.RoleID, RoleStatus.Approved, true, false); GroupUtilities.CreateJournalEntry(roleInfo, roleCreator); var notifications = new Notifications(); var siteAdmin = UserController.GetUserById(PortalSettings.PortalId, PortalSettings.AdministratorId); notifications.AddGroupNotification(Constants.GroupApprovedNotification, TabId, ModuleId, roleInfo, siteAdmin, new List<RoleInfo> { roleInfo }); NotificationsController.Instance.DeleteAllNotificationRecipients(notificationId); return Json(new { Result = "success" }); } catch (Exception exc) { DnnLog.Error(exc); return Json(new { Result = "error" }); } }
public HttpResponseMessage ApproveGroup(NotificationDTO postData) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(postData.NotificationId, UserInfo.UserID); if (recipient == null) return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate recipient"); var notification = NotificationsController.Instance.GetNotification(postData.NotificationId); ParseKey(notification.Context); if (_roleInfo == null) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate role"); } if (!IsMod()) { return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Not Authorized!"); } var roleController = new RoleController(); _roleInfo.Status = RoleStatus.Approved; roleController.UpdateRole(_roleInfo); var roleCreator = UserController.GetUserById(PortalSettings.PortalId, _roleInfo.CreatedByUserID); //Update the original creator's role roleController.UpdateUserRole(PortalSettings.PortalId, roleCreator.UserID, _roleInfo.RoleID, RoleStatus.Approved, true, false); GroupUtilities.CreateJournalEntry(_roleInfo, roleCreator); var notifications = new Notifications(); var siteAdmin = UserController.GetUserById(PortalSettings.PortalId, PortalSettings.AdministratorId); notifications.AddGroupNotification(Constants.GroupApprovedNotification, _tabId, _moduleId, _roleInfo, siteAdmin, new List<RoleInfo> { _roleInfo }); NotificationsController.Instance.DeleteAllNotificationRecipients(postData.NotificationId); return Request.CreateResponse(HttpStatusCode.OK, new {Result = "success"}); } catch (Exception exc) { Logger.Error(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } }
public HttpResponseMessage JoinGroup(RoleDTO postData) { try { if (UserInfo.UserID >= 0 && postData.RoleId > 0) { var roleController = new RoleController(); _roleInfo = roleController.GetRole(postData.RoleId, PortalSettings.PortalId); if (_roleInfo != null) { var requireApproval = false; if(_roleInfo.Settings.ContainsKey("ReviewMembers")) requireApproval = Convert.ToBoolean(_roleInfo.Settings["ReviewMembers"]); if ((_roleInfo.IsPublic || UserInfo.IsInRole(PortalSettings.AdministratorRoleName)) && !requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, _roleInfo.RoleID, Null.NullDate); roleController.UpdateRole(_roleInfo); var url = Globals.NavigateURL(postData.GroupViewTabId, "", new[] { "groupid=" + _roleInfo.RoleID }); return Request.CreateResponse(HttpStatusCode.OK, new { Result = "success", URL = url }); } if (_roleInfo.IsPublic && requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, _roleInfo.RoleID, RoleStatus.Pending, false, Null.NullDate, Null.NullDate); var notifications = new Notifications(); notifications.AddGroupOwnerNotification(Constants.MemberPendingNotification, _tabId, _moduleId, _roleInfo, UserInfo); return Request.CreateResponse(HttpStatusCode.OK, new { Result = "success", URL = string.Empty }); } } } } catch (Exception exc) { Logger.Error(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unknown Error"); }
/// ----------------------------------------------------------------------------- /// <summary> /// cmdUpdate_Click runs when the update Button is clicked /// </summary> /// <remarks> /// </remarks> /// <history> /// [cnurse] 9/10/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// [jlucarino] 2/23/2009 Added CreatedByUserID and LastModifiedByUserID /// </history> /// ----------------------------------------------------------------------------- protected void OnUpdateClick(object sender, EventArgs e) { try { if (Page.IsValid) { float sglServiceFee = 0; var intBillingPeriod = 1; var strBillingFrequency = "N"; if (cboBillingFrequency.SelectedItem.Value == "N" && !String.IsNullOrEmpty(txtServiceFee.Text)) { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("IncompatibleFee", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); return; } if (!String.IsNullOrEmpty(txtServiceFee.Text) && !String.IsNullOrEmpty(txtBillingPeriod.Text) && cboBillingFrequency.SelectedItem.Value != "N") { sglServiceFee = float.Parse(txtServiceFee.Text); intBillingPeriod = int.Parse(txtBillingPeriod.Text); strBillingFrequency = cboBillingFrequency.SelectedItem.Value; } float sglTrialFee = 0; var intTrialPeriod = 1; var strTrialFrequency = "N"; if (sglServiceFee != 0 && !String.IsNullOrEmpty(txtTrialFee.Text) && !String.IsNullOrEmpty(txtTrialPeriod.Text) && cboTrialFrequency.SelectedItem.Value != "N") { sglTrialFee = float.Parse(txtTrialFee.Text); intTrialPeriod = int.Parse(txtTrialPeriod.Text); strTrialFrequency = cboTrialFrequency.SelectedItem.Value; } var objRoleController = new RoleController(); var objRoleInfo = new RoleInfo(); objRoleInfo.PortalID = PortalId; objRoleInfo.RoleID = _roleID; objRoleInfo.RoleGroupID = int.Parse(cboRoleGroups.SelectedValue); objRoleInfo.RoleName = txtRoleName.Text; objRoleInfo.Description = txtDescription.Text; objRoleInfo.ServiceFee = sglServiceFee; objRoleInfo.BillingPeriod = intBillingPeriod; objRoleInfo.BillingFrequency = strBillingFrequency; objRoleInfo.TrialFee = sglTrialFee; objRoleInfo.TrialPeriod = intTrialPeriod; objRoleInfo.TrialFrequency = strTrialFrequency; objRoleInfo.IsPublic = chkIsPublic.Checked; objRoleInfo.AutoAssignment = chkAutoAssignment.Checked; objRoleInfo.RSVPCode = txtRSVPCode.Text; objRoleInfo.IconFile = ctlIcon.Url; if (_roleID == -1) { if (objRoleController.GetRoleByName(PortalId, objRoleInfo.RoleName) == null) { objRoleController.AddRole(objRoleInfo); } else { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("DuplicateRole", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); return; } } else { objRoleController.UpdateRole(objRoleInfo); } //Clear Roles Cache DataCache.RemoveCache("GetRoles"); Response.Redirect(Globals.NavigateURL()); } } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
private void SaveSettings() { var ctlRole = new RoleController(); RoleInfo role = ctlRole.GetRole(GroupId, PortalId); var sec = new PortalSecurity(); role.RoleName = sec.InputFilter(txtGroupName.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup); SaveSetting(ref role, FeatureController.KEY_COUNTRY, cboCountry.SelectedValue); SaveSetting(ref role, FeatureController.KEY_COUNTRYFULL, cboCountry.SelectedItem.Text); SaveSetting(ref role, FeatureController.KEY_REGION, sec.InputFilter(ParseRegionSaveSetting(), PortalSecurity.FilterFlag.NoMarkup)); if (role.Settings[FeatureController.KEY_REGION] == cboRegion.SelectedValue) { SaveSetting(ref role, FeatureController.KEY_REGIONFULL, cboRegion.SelectedItem.Text); } else { SaveSetting(ref role, FeatureController.KEY_REGIONFULL, sec.InputFilter(txtRegion.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); } SaveSetting(ref role, FeatureController.KEY_CITY, sec.InputFilter(txtCity.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_DEFAULTLANGUAGE, cboDefaultLanguage.SelectedValue); SaveSetting(ref role, FeatureController.KEY_WEBSITEURL, sec.InputFilter(txtWebsiteUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_FACEBOOKURL, sec.InputFilter(txtFacebookUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_TWITTERURL, sec.InputFilter(txtTwitterUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_LINKEDINURL, sec.InputFilter(txtLinkedInUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_GOOGLEPLUSURL, sec.InputFilter(txtGooglePlusUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_MEETUPURL, sec.InputFilter(txtMeetUpUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); SaveSetting(ref role, FeatureController.KEY_YOUTUBEURL, sec.InputFilter(txtYouTubeUrl.Text.Trim(), PortalSecurity.FilterFlag.NoMarkup)); // update the role to save the name change ctlRole.UpdateRole(role); // save the settings TestableRoleController.Instance.UpdateRoleSettings(role, true); }
private void Save_Click(object sender, EventArgs e) { if (GroupId > 0) { RoleController roleController = new RoleController(); Security.PortalSecurity ps = new Security.PortalSecurity(); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoMarkup); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoMarkup); var roleInfo = roleController.GetRole(GroupId, PortalId); if (roleInfo != null) { if (txtGroupName.Visible) //if this is visible assume that we're editing the groupname { if (txtGroupName.Text != roleInfo.RoleName) { if (roleController.GetRoleByName(PortalId, txtGroupName.Text) != null) { lblInvalidGroupName.Visible = true; return; } } } if(!roleInfo.IsSystemRole) { roleInfo.RoleName = txtGroupName.Text; } roleInfo.Description = txtDescription.Text; roleInfo.IsPublic = rdAccessTypePublic.Checked; if (roleInfo.Settings.ContainsKey("ReviewMembers")) roleInfo.Settings["ReviewMembers"] = chkMemberApproved.Checked.ToString(); else roleInfo.Settings.Add("ReviewMembers", chkMemberApproved.Checked.ToString()); TestableRoleController.Instance.UpdateRoleSettings(roleInfo, true); roleController.UpdateRole(roleInfo); if (inpFile.PostedFile.ContentLength > 0) { IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; var rootFolderPath = PathUtils.Instance.FormatFolderPath(PortalSettings.HomeDirectory); IFolderInfo groupFolder = _folderManager.GetFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); if (groupFolder == null) { groupFolder = _folderManager.AddFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); } if (groupFolder != null) { var fileName = Path.GetFileName(inpFile.PostedFile.FileName); var fileInfo = _fileManager.AddFile(groupFolder, fileName, inpFile.PostedFile.InputStream, true); roleInfo.IconFile = "FileID=" + fileInfo.FileId; roleController.UpdateRole(roleInfo); } } //Clear Roles Cache DataCache.RemoveCache("GetRoles"); } Response.Redirect(Globals.NavigateURL(TabId, "", new String[] { "groupid=" + GroupId.ToString() })); } }
private void Create_Click(object sender, EventArgs e) { RoleController roleController = new RoleController(); Security.PortalSecurity ps = new Security.PortalSecurity(); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoMarkup); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoMarkup); if (roleController.GetRoleByName(PortalId, txtGroupName.Text) != null) { reqGroupName.Visible = true; return; } List<RoleInfo> modRoles = new List<RoleInfo>(); foreach (ModulePermissionInfo modulePermissionInfo in ModulePermissionController.GetModulePermissions(ModuleId, TabId)) { if (modulePermissionInfo.PermissionKey == "MODGROUP" && modulePermissionInfo.AllowAccess) { modRoles.Add(roleController.GetRole(modulePermissionInfo.RoleID, PortalId)); } } RoleInfo roleInfo = new RoleInfo() { PortalID = PortalId, RoleName = txtGroupName.Text, Description = txtDescription.Text, SecurityMode = SecurityMode.SocialGroup, Status = RoleStatus.Approved, IsPublic = rdAccessTypePublic.Checked }; var userRoleStatus = RoleStatus.Pending; if (GroupModerationEnabled) { roleInfo.Status = RoleStatus.Pending; userRoleStatus = RoleStatus.Pending; } else { userRoleStatus = RoleStatus.Approved; } var objModulePermissions = new ModulePermissionCollection(CBO.FillCollection(DataProvider.Instance().GetModulePermissionsByModuleID(ModuleId, -1), typeof(ModulePermissionInfo))); if (ModulePermissionController.HasModulePermission(objModulePermissions, "MODGROUP")) { roleInfo.Status = RoleStatus.Approved; userRoleStatus = RoleStatus.Approved; } roleInfo.RoleGroupID = DefaultRoleGroupId; roleInfo.RoleID = roleController.AddRole(roleInfo); roleInfo = roleController.GetRole(roleInfo.RoleID, PortalId); roleInfo.Settings.Add("URL", Globals.NavigateURL(GroupViewTabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() })); roleInfo.Settings.Add("GroupCreatorName", UserInfo.DisplayName); roleInfo.Settings.Add("ReviewMembers", chkMemberApproved.Checked.ToString()); TestableRoleController.Instance.UpdateRoleSettings(roleInfo, true); if (inpFile.PostedFile.ContentLength > 0) { IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; var rootFolderPath = PathUtils.Instance.FormatFolderPath(PortalSettings.HomeDirectory); IFolderInfo groupFolder = _folderManager.GetFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); if (groupFolder == null) { groupFolder = _folderManager.AddFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); } if (groupFolder != null) { var fileName = Path.GetFileName(inpFile.PostedFile.FileName); var fileInfo = _fileManager.AddFile(groupFolder, fileName, inpFile.PostedFile.InputStream, true); roleInfo.IconFile = "FileID=" + fileInfo.FileId; roleController.UpdateRole(roleInfo); } } Components.Notifications notifications = new Components.Notifications(); roleController.AddUserRole(PortalId, UserId, roleInfo.RoleID, userRoleStatus, true, Null.NullDate, Null.NullDate); if (roleInfo.Status == RoleStatus.Pending) { //Send notification to Group Moderators to approve/reject group. notifications.AddGroupNotification(Constants.GroupPendingNotification, GroupViewTabId, ModuleId, roleInfo, UserInfo, modRoles); } else { //Send notification to Group Moderators informing of new group. notifications.AddGroupNotification(Constants.GroupCreatedNotification, GroupViewTabId, ModuleId, roleInfo, UserInfo, modRoles); //Add entry to journal. GroupUtilities.CreateJournalEntry(roleInfo, UserInfo); } Response.Redirect(Globals.NavigateURL(GroupViewTabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() })); }
private void Save_Click(object sender, EventArgs e) { if (GroupId > 0) { RoleController roleController = new RoleController(); Security.PortalSecurity ps = new Security.PortalSecurity(); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoMarkup); var roleInfo = roleController.GetRole(GroupId, PortalId); if (roleInfo != null) { roleInfo.Description = txtDescription.Text; roleInfo.IsPublic = rdAccessTypePublic.Checked; if (roleInfo.Settings.ContainsKey("URL")) { roleInfo.Settings["URL"] = Globals.NavigateURL(TabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() }); } else { roleInfo.Settings.Add("URL", Globals.NavigateURL(TabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() })); } if (roleInfo.Settings.ContainsKey("ReviewMembers")) { roleInfo.Settings["ReviewMembers"] = chkMemberApproved.Checked.ToString(); } else { roleInfo.Settings.Add("ReviewMembers", chkMemberApproved.Checked.ToString()); } TestableRoleController.Instance.UpdateRoleSettings(roleInfo, true); roleController.UpdateRole(roleInfo); if (inpFile.PostedFile.ContentLength > 0) { IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; var rootFolderPath = PathUtils.Instance.FormatFolderPath(PortalSettings.HomeDirectory); IFolderInfo groupFolder = _folderManager.GetFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); if (groupFolder == null) { groupFolder = _folderManager.AddFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); } if (groupFolder != null) { var fileName = Path.GetFileName(inpFile.PostedFile.FileName); var fileInfo = _fileManager.AddFile(groupFolder, fileName, inpFile.PostedFile.InputStream, true); roleInfo.IconFile = "FileID=" + fileInfo.FileId; roleController.UpdateRole(roleInfo); } } } Response.Redirect(Globals.NavigateURL(TabId, "", new String[] { "groupid=" + GroupId.ToString() })); } }
protected string ParseGroupIconFile(object GroupId, object iconFile) { if (GroupId == null) throw new ArgumentNullException("GroupId cannot be null"); // return a default icon if (iconFile == null) return Page.ResolveClientUrl("/DesktopModules/UGLabsMyGroups/Images/ugdefault.jpg"); var icon = iconFile.ToString(); // parse the value to determine if it's a URL or a DNN file if (Regex.IsMatch(icon, FeatureController.FILEID_MATCH_PATTERN, RegexOptions.IgnoreCase)) { // the value is FileID=[number] var fileIdValue = Regex.Match(icon, FeatureController.FILEID_MATCH_PATTERN, RegexOptions.IgnoreCase).Groups[1].Value; if (!Regex.IsMatch(fileIdValue, @"^\d+$")) throw new ArgumentOutOfRangeException("The File ID is not in a valid format."); var fileId = int.Parse(fileIdValue); var ctlModule = new FeatureController(); // grab a reference to the image var image = FileManager.Instance.GetFile(fileId); if (image == null) throw new ArgumentNullException("The image object is null."); if (image.Width > 124) { // resize and save a new image var thumbnail = CreateGroupIconImage(image); // update the role with the new file id var ctlRole = new RoleController(); var role = ctlRole.GetRole(int.Parse(GroupId.ToString()), PortalId); role.IconFile = string.Format("FileID={0}", thumbnail.FileId); ctlRole.UpdateRole(role); return ctlModule.GetImageFileUrl(thumbnail); } return ctlModule.GetImageFileUrl(image); } else { // this is an actual URL return icon; } }
public ActionResult JoinGroup(int roleId) { try { if (UserInfo.UserID >= 0 && roleId > 0) { var roleController = new RoleController(); roleInfo = roleController.GetRole(roleId, PortalSettings.PortalId); if (roleInfo != null) { var requireApproval = Convert.ToBoolean(roleInfo.Settings["ReviewMembers"].ToString()); if (roleInfo.IsPublic && !requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, roleInfo.RoleID, Null.NullDate); roleController.UpdateRole(roleInfo); return Json(new { Result = "success", URL = roleInfo.Settings["URL"] }); } if (roleInfo.IsPublic && requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, roleInfo.RoleID, RoleStatus.Pending, false, Null.NullDate, Null.NullDate); Components.Notifications notifications = new Components.Notifications(); notifications.AddGroupOwnerNotification(Constants.MemberPendingNotification, TabId, ModuleId, roleInfo, UserInfo); return Json(new { Result = "success", URL = string.Empty }); } } } } catch (Exception exc) { DnnLog.Error(exc); } return Json(new { Result = "error" }); }
private static void UpgradeToVersion621() { //update administrators' role description. var portalController = new PortalController(); var roleController = new RoleController(); var moduleController = new ModuleController(); foreach (PortalInfo portal in portalController.GetPortals()) { var role = roleController.GetRoleByName(portal.PortalID, "Administrators"); if(role != null && role.Description == "Portal Administrators") { role.Description = "Administrators of this Website"; roleController.UpdateRole(role); } role = roleController.GetRoleByName(portal.PortalID, "Subscribers"); if (role != null && role.Description == "A public role for portal subscriptions") { role.Description = "A public role for site subscriptions"; roleController.UpdateRole(role); } //update about me's template var myProfileTabId = TabController.GetTabByTabPath(portal.PortalID, "//ActivityFeed//MyProfile", string.Empty); if(myProfileTabId != Null.NullInteger) { var tabModules = moduleController.GetTabModules(myProfileTabId); foreach(var module in tabModules.Values) { var settings = moduleController.GetTabModuleSettings(module.TabModuleID); if(settings.ContainsKey("ProfileTemplate") && settings["ProfileTemplate"].ToString().Contains("<div class=\"pBio\">")) { var template = @"<div class=""pBio""> <h3 data-bind=""text: AboutMeText""></h3> <span data-bind=""text: EmptyAboutMeText, visible: Biography().length==0""></span> <p data-bind=""html: Biography""></p> </div> <div class=""pAddress""> <h3 data-bind=""text: LocationText""></h3> <span data-bind=""text: EmptyLocationText, visible: Street().length=0 && Location().length==0 && Country().length==0 && PostalCode().length==0""></span> <p><span data-bind=""text: Street()""></span><span data-bind=""visible: Street().length > 0""><br/></span> <span data-bind=""text: Location()""></span><span data-bind=""visible: Location().length > 0""><br/></span> <span data-bind=""text: Country()""></span><span data-bind=""visible: Country().length > 0""><br/></span> <span data-bind=""text: PostalCode()""></span> </p> </div> <div class=""pContact""> <h3 data-bind=""text: GetInTouchText""></h3> <span data-bind=""text: EmptyGetInTouchText, visible: Telephone().length==0 && Email().length==0 && Website().length==0 && IM().length==0""></span> <ul> <li data-bind=""visible: Telephone().length > 0""><strong><span data-bind=""text: TelephoneText"">:</span></strong> <span data-bind=""text: Telephone()""></span></li> <li data-bind=""visible: Email().length > 0""><strong><span data-bind=""text: EmailText"">:</span></strong> <span data-bind=""text: Email()""></span></li> <li data-bind=""visible: Website().length > 0""><strong><span data-bind=""text: WebsiteText"">:</span></strong> <span data-bind=""text: Website()""></span></li> <li data-bind=""visible: IM().length > 0""><strong><span data-bind=""text: IMText"">:</span></strong> <span data-bind=""text: IM()""></span></li> </ul> </div> <div class=""dnnClear""></div>"; moduleController.UpdateTabModuleSetting(module.TabModuleID, "ProfileTemplate", template); } } } } }