Example #1
0
    /// <summary>
    /// Creates system macro identity 'GlobalAdministrator' and assigns it <see cref="UserInfoProvider.AdministratorUser"/> as effective user.
    /// Assigns the identity to <see cref="UserInfoProvider.AdministratorUser"/> so that it is used upon macro re-signing.
    /// </summary>
    private static void CreateSystemMacroIdentity()
    {
        var administratorUser = UserInfoProvider.AdministratorUser;

        if (administratorUser == null)
        {
            throw new InvalidOperationException("No administrator user was found. Upgrade cannot proceed. Make sure at least 1 user with global administrator privilege level exists before upgrading.");
        }

        var systemMacroIdentity = new MacroIdentityInfo
        {
            MacroIdentityGuid            = Guid.Parse("C6EF4403-2D1B-49E1-A41B-5B0FAFA857E9"),
            MacroIdentityName            = "GlobalAdministrator",
            MacroIdentityEffectiveUserID = administratorUser.UserID
        };

        MacroIdentityInfoProvider.SetMacroIdentityInfo(systemMacroIdentity);

        var administratorUserMacroIdentity = new UserMacroIdentityInfo
        {
            UserMacroIdentityMacroIdentityID = systemMacroIdentity.MacroIdentityID,
            UserMacroIdentityUserID          = administratorUser.UserID,
            UserMacroIdentityUserGuid        = administratorUser.UserGUID
        };

        UserMacroIdentityInfoProvider.SetUserMacroIdentityInfo(administratorUserMacroIdentity);
    }
Example #2
0
    /// <summary>
    /// Loads data of edited user from DB into TextBoxes.
    /// </summary>
    protected void LoadData()
    {
        // Fill lstUICulture (loop over and localize them first)
        DataSet uiCultures = CultureInfoProvider.GetUICultures().OrderBy("CultureName");

        LocalizeCultureNames(uiCultures);
        lstUICulture.DataSource     = uiCultures.Tables[0].DefaultView;
        lstUICulture.DataTextField  = "CultureName";
        lstUICulture.DataValueField = "CultureID";
        lstUICulture.DataBind();

        lstUICulture.Items.Insert(0, GetString("Administration-User_Edit.Default"));
        lstUICulture.Items[0].Value = "0";

        if (ui != null)
        {
            // Get user info properties
            txtEmail.Text      = ui.Email;
            txtFirstName.Text  = ui.FirstName;
            txtFullName.Text   = ui.FullName;
            txtLastName.Text   = ui.LastName;
            txtMiddleName.Text = ui.MiddleName;
            ucUserName.Value   = ui.UserName;

            CheckBoxEnabled.Checked = ui.Enabled;
            chkIsExternal.Checked   = ui.IsExternal;
            chkIsDomain.Checked     = ui.UserIsDomain;
            chkIsHidden.Checked     = ui.UserIsHidden;
            drpMacroIdentity.Value  = UserMacroIdentityInfoProvider.GetUserMacroIdentityInfo(ui)?.UserMacroIdentityMacroIdentityID;
            chkIsMFRequired.Checked = ui.UserMFRequired;

            // Privilege and macro signature identity drop down check
            if (!CurrentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin))
            {
                drpMacroIdentity.Enabled = false;

                // Disable for global admins
                if (ui.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin))
                {
                    drpPrivilege.Enabled = false;
                }
                else
                // Only global admin can manage other admins.
                if (ui.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin))
                {
                    // Allow manage only for user himself
                    if (ui.UserID != CurrentUser.UserID)
                    {
                        drpPrivilege.Enabled = false;
                    }
                    else
                    {
                        drpPrivilege.ExcludedValues = ((int)UserPrivilegeLevelEnum.GlobalAdmin).ToString();
                    }
                }
                else
                {
                    drpPrivilege.ExcludedValues = (int)UserPrivilegeLevelEnum.GlobalAdmin + ";" + (int)UserPrivilegeLevelEnum.Admin;
                }
            }

            drpPrivilege.Value = (int)ui.SiteIndependentPrivilegeLevel;

            password = ui.GetValue("UserPassword").ToString();

            // Disable username textbox for public user
            if (ui.IsPublic())
            {
                ucUserName.Enabled = false;
            }

            myCulture   = ui.PreferredCultureCode;
            myUICulture = ui.PreferredUICultureCode;

            lblInvalidLogonAttemptsNumber.Text = string.Format(GetString("general.attempts"), ui.UserInvalidLogOnAttempts);
            if (ui.UserInvalidLogOnAttempts > 0)
            {
                lblInvalidLogonAttemptsNumber.Style.Add(HtmlTextWriterStyle.Color, "Red");
            }
            else
            {
                btnResetLogonAttempts.Enabled = (ui.UserAccountLockReason == UserAccountLockCode.FromEnum(UserAccountLockEnum.MaximumInvalidLogonAttemptsReached));
            }

            LoadPasswordExpiration(ui);

            txtUserStartingPath.Text = ui.UserStartingAliasPath;
        }

        // Set content culture
        cultureSelector.Value = myCulture;

        if (!string.IsNullOrEmpty(myUICulture))
        {
            // Set UI culture
            try
            {
                CultureInfo ciUI = CultureInfoProvider.GetCultureInfo(myUICulture);
                lstUICulture.SelectedIndex = lstUICulture.Items.IndexOf(lstUICulture.Items.FindByValue(ciUI.CultureID.ToString()));
            }
            catch
            {
                lstUICulture.SelectedIndex = lstUICulture.Items.IndexOf(lstUICulture.Items.FindByValue("0"));
            }
        }
        else
        {
            lstUICulture.SelectedIndex = lstUICulture.Items.IndexOf(lstUICulture.Items.FindByValue("0"));
        }

        if (ui != null)
        {
            // If new user
            lblCreatedInfo.Text   = ui.UserCreated.ToString();
            lblLastLogonTime.Text = ui.LastLogon.ToString();

            LoadUserLogon(ui);

            if (ui.UserCreated == DateTimeHelper.ZERO_TIME)
            {
                lblCreatedInfo.Text = GetString("general.na");
            }

            if (ui.LastLogon == DateTimeHelper.ZERO_TIME)
            {
                lblLastLogonTime.Text = GetString("general.na");
            }
        }
    }