Esempio n. 1
0
    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();
        }
    }
Esempio n. 2
0
    /// <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);
        }
    }
Esempio n. 3
0
    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();
            }
        }
    }
Esempio n. 4
0
    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();
    }
Esempio n. 6
0
    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;
    }