195 lines
No EOL
7.8 KiB
C#
195 lines
No EOL
7.8 KiB
C#
// Copyright (c) 2012, Outercurve Foundation.
|
|
// All rights reserved.
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without modification,
|
|
// are permitted provided that the following conditions are met:
|
|
//
|
|
// - Redistributions of source code must retain the above copyright notice, this
|
|
// list of conditions and the following disclaimer.
|
|
//
|
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
// this list of conditions and the following disclaimer in the documentation
|
|
// and/or other materials provided with the distribution.
|
|
//
|
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
// contributors may be used to endorse or promote products derived from this
|
|
// software without specific prior written permission.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
using System;
|
|
using WebsitePanel.EnterpriseServer;
|
|
using System.Web.Security;
|
|
|
|
namespace WebsitePanel.Portal
|
|
{
|
|
public partial class LoggedUserEditDetails : WebsitePanelModuleBase
|
|
{
|
|
const int redirectTimeout = Utils.CHANGE_PASSWORD_REDIRECT_TIMEOUT;
|
|
const string changePasswordWarningKey = "LoggedUserEditDetails.ChangePasswordWarning";
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
// bind form
|
|
BindLanguages();
|
|
BindUser();
|
|
string changePasswordWarningText = GetSharedLocalizedString(changePasswordWarningKey);
|
|
if (!String.IsNullOrEmpty(changePasswordWarningText))
|
|
lblChangePasswordWarning.Text = changePasswordWarningText;
|
|
}
|
|
}
|
|
|
|
private void BindLanguages()
|
|
{
|
|
PortalUtils.LoadCultureDropDownList(ddlLanguage);
|
|
}
|
|
|
|
private void BindUser()
|
|
{
|
|
UserInfo user = ES.Services.Users.GetUserById(PanelSecurity.LoggedUserId);
|
|
|
|
if (user != null)
|
|
{
|
|
userPassword.SetUserPolicy(user.UserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy");
|
|
|
|
// account info
|
|
txtFirstName.Text = PortalAntiXSS.DecodeOld(user.FirstName);
|
|
txtLastName.Text = PortalAntiXSS.DecodeOld(user.LastName);
|
|
txtEmail.Text = user.Email;
|
|
txtSecondaryEmail.Text = user.SecondaryEmail;
|
|
lblUsername.Text = user.Username;
|
|
ddlMailFormat.SelectedIndex = user.HtmlMail ? 1 : 0;
|
|
|
|
// contact info
|
|
contact.CompanyName = user.CompanyName;
|
|
contact.Address = user.Address;
|
|
contact.City = user.City;
|
|
contact.Country = user.Country;
|
|
contact.State = user.State;
|
|
contact.Zip = user.Zip;
|
|
contact.PrimaryPhone = user.PrimaryPhone;
|
|
contact.SecondaryPhone = user.SecondaryPhone;
|
|
contact.Fax = user.Fax;
|
|
contact.MessengerId = user.InstantMessenger;
|
|
|
|
// bind language
|
|
/*DotNetNuke.Entities.Users.UserInfo dnnUser =
|
|
DnnUsers.GetUserByName(PortalSettings.PortalId, user.Username, false);
|
|
|
|
if (dnnUser != null)
|
|
Utils.SelectListItem(ddlLanguage, dnnUser.Profile.PreferredLocale);*/
|
|
|
|
// bind items per page
|
|
|
|
txtItemsPerPage.Text = UsersHelper.GetDisplayItemsPerPage().ToString();
|
|
|
|
}
|
|
}
|
|
|
|
private void SaveUser(bool switchUser)
|
|
{
|
|
// get owner
|
|
UserInfo user = ES.Services.Users.GetUserById(PanelSecurity.LoggedUserId);
|
|
|
|
if (Page.IsValid)
|
|
{
|
|
// gather data from form
|
|
// account info
|
|
user.FirstName = txtFirstName.Text;
|
|
user.LastName = txtLastName.Text;
|
|
user.Email = txtEmail.Text;
|
|
user.SecondaryEmail = txtSecondaryEmail.Text;
|
|
user.HtmlMail = ddlMailFormat.SelectedIndex == 1;
|
|
|
|
// contact info
|
|
user.CompanyName = contact.CompanyName;
|
|
user.Address = contact.Address;
|
|
user.City = contact.City;
|
|
user.Country = contact.Country;
|
|
user.State = contact.State;
|
|
user.Zip = contact.Zip;
|
|
user.PrimaryPhone = contact.PrimaryPhone;
|
|
user.SecondaryPhone = contact.SecondaryPhone;
|
|
user.Fax = contact.Fax;
|
|
user.InstantMessenger = contact.MessengerId;
|
|
|
|
// update existing user
|
|
try
|
|
{
|
|
//int result = UsersHelper.UpdateUser(PortalId, user);
|
|
int result = PortalUtils.UpdateUserAccount(user);
|
|
|
|
if (result < 0)
|
|
{
|
|
ShowResultMessage(result);
|
|
return;
|
|
}
|
|
|
|
// set language
|
|
PortalUtils.SetCurrentLanguage(ddlLanguage.SelectedValue);
|
|
|
|
// set items per page
|
|
UsersHelper.SetDisplayItemsPerPage(Utils.ParseInt(txtItemsPerPage.Text.Trim(), 10));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ShowErrorMessage("USER_UPDATE_USER", ex);
|
|
return;
|
|
}
|
|
|
|
// show message
|
|
ShowSuccessMessage("USER_UPDATE_USER");
|
|
}
|
|
}
|
|
|
|
private void ChangeUserPassword()
|
|
{
|
|
if (!Page.IsValid)
|
|
return;
|
|
|
|
try
|
|
{
|
|
//int result = UsersHelper.ChangeUserPassword(PortalId, PanelRequest.UserID, userPassword.Password);
|
|
int result = PortalUtils.ChangeUserPassword(PanelSecurity.LoggedUserId, userPassword.Password);
|
|
|
|
if (result < 0)
|
|
{
|
|
ShowResultMessage(result);
|
|
return;
|
|
}
|
|
pnlEdit.Visible = false;
|
|
string loginClientUrl = Page.ResolveClientUrl(PortalUtils.LoginRedirectUrl);
|
|
ShowSuccessMessage(Utils.ModuleName, "LOGGED_USER_CHANGE_PASSWORD", loginClientUrl, (redirectTimeout/1000).ToString());
|
|
FormsAuthentication.SignOut();
|
|
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RedirectToLogin", String.Format("setTimeout(\"window.location='{0}'\",{1});", loginClientUrl, redirectTimeout), true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ShowErrorMessage("USER_CHANGE_PASSWORD", ex);
|
|
return;
|
|
}
|
|
}
|
|
|
|
protected void btnUpdate_Click(object sender, EventArgs e)
|
|
{
|
|
SaveUser(false);
|
|
}
|
|
|
|
protected void cmdChangePassword_Click(object sender, EventArgs e)
|
|
{
|
|
// change password
|
|
ChangeUserPassword();
|
|
}
|
|
}
|
|
} |