protected void uniSelector_OnSelectionChanged(object sender, EventArgs e) { bool reloadNeeded = !CheckModifyPermissions(); if (!reloadNeeded) { bool invalidateUser = false; // Remove old items string newValues = ValidationHelper.GetString(uniSelector.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new cultures to word foreach (string item in newItems) { int cultureId = ValidationHelper.GetInteger(item, 0); UserCultureInfoProvider.RemoveUserFromCulture(userId, cultureId, siteID); } invalidateUser = true; } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new cultures to word foreach (string item in newItems) { int cultureId = ValidationHelper.GetInteger(item, 0); UserCultureInfoProvider.AddUserToCulture(userId, cultureId, siteID); } invalidateUser = true; } } // Invalidate user object if (invalidateUser) { ui.Invalidate(); } lblInfo.Visible = true; lblInfo.Text = GetString("General.ChangesSaved"); } else { ReloadCultures(); } }
/// <summary> /// Reloads the cultures in UniSelector. /// </summary> protected void ReloadCultures() { DataTable dt = UserCultureInfoProvider.GetUserCultures(userId, SiteID); if (!DataHelper.DataSourceIsEmpty(dt)) { currentValues = TextHelper.Join(";", DataHelper.GetStringValues(dt, "CultureID")); uniSelector.Value = currentValues; uniSelector.Reload(true); } }
protected void radAllLanguages_CheckedChanged(object sender, EventArgs e) { if (CheckModifyPermissions()) { // Set value indicating whether the user have allowed cultures if (ui != null) { // Remove user's allowed cultures UserCultureInfoProvider.RemoveUserFromAllCultures(userId); ui.UserHasAllowedCultures = radSelectedLanguages.Checked; UserInfo.Provider.Set(ui); ui.Generalized.Invalidate(false); plcCultures.Visible = false; ShowChangesSaved(); } } }
protected void radAllLanguages_CheckedChanged(object sender, EventArgs e) { if (CheckModifyPermissions()) { // Set value indicating whether the user have allowed cultures if (ui != null) { // Remove user's allowed cultures UserCultureInfoProvider.RemoveUserFromAllCultures(userId); ui.UserHasAllowedCultures = radSelectedLanguages.Checked; UserInfoProvider.SetUserInfo(ui); plcCultures.Visible = false; lblInfo.Visible = true; lblInfo.Text = GetString("General.ChangesSaved"); } } }
protected void SaveSites() { // Check "modify" permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Users", "Modify")) { RedirectToAccessDenied("CMS.Users", "Modify"); } // Remove old items string newValues = ValidationHelper.GetString(usSites.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int siteId = ValidationHelper.GetInteger(item, 0); // remove user from the site UserInfoProvider.RemoveUserFromSite(userId, siteId); // Remove user's allowed cultures for this site UserCultureInfoProvider.RemoveUserFromSite(userId, siteId); } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { bool falseValues = false; // Add all new items to site foreach (string item in newItems) { int siteId = ValidationHelper.GetInteger(item, 0); SiteInfo si = SiteInfoProvider.GetSiteInfo(siteId); if (si != null) { if (ui.IsEditor) { if (!UserInfoProvider.LicenseVersionCheck(si.DomainName, FeatureEnum.Editors, VersionActionEnum.Insert, false)) { falseValues = true; ShowError(GetString("LicenseVersion.EditorSite")); continue; } } if (!UserInfoProvider.LicenseVersionCheck(si.DomainName, FeatureEnum.SiteMembers, VersionActionEnum.Insert, false)) { falseValues = true; ShowError(GetString("LicenseVersion.SiteMembersSite")); continue; } // Check if email would be unique in site if (UserInfoProvider.IsEmailUnique(ui.Email, si.SiteName, ui.UserID)) { UserSiteInfoProvider.AddUserToSite(ui, si); } else { falseValues = true; ShowError(GetString("UserInfo.EmailAlreadyExistInSomeSite")); } } } // If some of sites could not be assigned reload selector value if (falseValues) { usSites.Value = GetUserSites(); usSites.Reload(true); } } } ShowChangesSaved(); }
protected void Page_Load(object sender, EventArgs e) { // Register script for pendingCallbacks repair ScriptHelper.FixPendingCallbacks(Page); // If languages on site not ok, redirect if (!CultureSiteInfoProvider.LicenseVersionCheck()) { URLHelper.Redirect(ResolveUrl("~/CMSMessages/LicenseLimit.aspx")); } userId = QueryHelper.GetInteger("userid", 0); siteID = SiteID; if (userId > 0) { ui = UserInfo.Provider.Get(userId); CheckUserAvaibleOnSite(ui); EditedObject = ui; if (!CheckGlobalAdminEdit(ui)) { pnlLanguages.Visible = false; ShowError(GetString("Administration-User_List.ErrorGlobalAdmin")); return; } // Set site selector siteSelector.DropDownSingleSelect.AutoPostBack = true; siteSelector.AllowAll = false; siteSelector.OnlyRunningSites = false; siteSelector.UserId = ui.UserID; siteSelector.UniSelector.OnSelectionChanged += UniSelector_OnSelectionChanged; if (!RequestHelper.IsPostBack()) { // Initialize radio buttons radAllLanguages.Checked = !ui.UserHasAllowedCultures; radSelectedLanguages.Checked = ui.UserHasAllowedCultures; // Load the site selector with the data in order to preselect current site (if available in the list) siteSelector.UniSelector.SelectionMode = SelectionModeEnum.SingleDropDownList; siteSelector.UniSelector.AllowEmpty = false; siteSelector.Reload(true); // Select the current site if it is in the list, otherwise select the first site in the list if (siteSelector.DropDownSingleSelect.Items.FindByValue(SiteContext.CurrentSiteID.ToString()) != null) { siteSelector.Value = SiteContext.CurrentSiteID; } else if (siteSelector.DropDownSingleSelect.Items.Count > 0) { siteSelector.Value = siteSelector.DropDownSingleSelect.Items[0].Value; } siteSelector.DropDownSingleSelect.SelectedValue = siteSelector.Value.ToString(); } // Show site selection in administration only for global administrator if ((SiteID > 0) && (!MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin))) { plcSite.Visible = false; } else { plcSite.Visible = radSelectedLanguages.Checked; siteID = siteSelector.SiteID; } // Set grid visibility plcCultures.Visible = radSelectedLanguages.Checked; // Load user cultures DataTable dt = UserCultureInfoProvider.GetUserCultures(userId, siteID); currentValues = TextHelper.Join(";", DataHelper.GetStringValues(dt, "CultureID")); if (!RequestHelper.IsPostBack()) { uniSelector.Value = currentValues; uniSelector.Reload(true); } } uniSelector.WhereCondition = "CultureID IN (SELECT CultureID FROM CMS_SiteCulture WHERE SiteID = " + siteID + ")"; uniSelector.OnSelectionChanged += uniSelector_OnSelectionChanged; radAllLanguages.CheckedChanged += radAllLanguages_CheckedChanged; radSelectedLanguages.CheckedChanged += radSelectedLanguages_CheckedChanged; }