Exemple #1
0
        protected void Page_Init(object sender, EventArgs e)
        {
            UpdatePasswordExpiryDateLinkButton.Text = string.Format("[Extend by {0} days]", UserManager.PasswordExpiryDays);
            UpdateAccountExpiryDateLinkButton.Text  = string.Format("[Extend by {0} days]", UserManager.AccountExpiryDays);

            UserId = WebUtils.GetIntRequestParam("UserId", 0);

            RemoveUserRoles();

            List <Workflow> workflowList;

            switch (CurrentUser.UserRole)
            {
            case UserRole.SuperAdministrator:
            {
                IsStaffUserRow.Visible       = true;
                AdvancedOptionsPanel.Visible = true;
                EmulateUserButton.Visible    = true;

                // Only display the brand selector if there is more than one brand
                BrandSelectorRow.Visible = (BrandManager.IsMultipleBrandMode);

                WorkflowFinder finder = new WorkflowFinder();
                finder.SortExpressions.Add(new AscendingSort(Workflow.Columns.Name.ToString()));
                workflowList = Workflow.FindMany(finder);
            }
            break;

            case UserRole.BrandAdministrator:
            {
                IsStaffUserRow.Visible = false;
                IsStaffUserRadioButtonList.SelectedValue = (CurrentUser.IsEmployee) ? "1" : "0";

                AdvancedOptionsPanel.Visible = false;
                EmulateUserButton.Visible    = false;
                BrandSelectorRow.Visible     = false;

                WorkflowFinder finder = new WorkflowFinder {
                    BrandId = CurrentUser.PrimaryBrandId
                };
                finder.SortExpressions.Add(new AscendingSort(Workflow.Columns.Name.ToString()));
                workflowList = Workflow.FindMany(finder);
            }
            break;

            default:
                throw new SecurityException("Access denied");
            }

            WorkflowDropDownList.DataSource     = workflowList;
            WorkflowDropDownList.DataTextField  = Workflow.Columns.Name.ToString();
            WorkflowDropDownList.DataValueField = Workflow.Columns.WorkflowId.ToString();
            WorkflowDropDownList.DataBind();

            WorkflowDropDownList.Items.Insert(0, new ListItem("Let user choose", "0"));

            BrandSelectorRepeater.DataSource = BrandCache.Instance.GetList();
            BrandSelectorRepeater.DataBind();
        }
Exemple #2
0
        protected void SaveButton_Click(object sender, EventArgs e)
        {
            // Get the user id
            int userId = WebUtils.GetIntRequestParam("UserId", 0);

            // Get the user
            User user = Data.User.Get(userId);

            if (user.IsNull)
            {
                // Get new user with default values set
                user = UserManager.GetNewUser();

                if (GeneratedPasswordPanel.Visible || (!NoWelcomeEmailCheckBox.Checked && StringUtils.IsBlank(PasswordTextBox.Text)))
                {
                    // Set password
                    string password = PasswordGenerator.GeneratePassword();
                    user.SetPassword(password);
                    user.SetConfirmPassword(password);
                }

                // Conditional settings for brand admins
                // (As they cannot set these values from the user interface)
                if (CurrentUser.UserRole == UserRole.BrandAdministrator)
                {
                    user.IsEmployee              = CurrentUser.IsEmployee;
                    user.PrimaryBrandId          = CurrentUser.PrimaryBrandId;
                    user.IsAccountNonExpiring    = false;
                    user.IsPasswordNonExpiring   = false;
                    user.IsAllowedExternalAccess = false;
                    user.EnableFilePathIngestion = false;
                }
            }

            user.FirstName    = FirstNameTextBox.Text.Trim();
            user.LastName     = LastNameTextBox.Text.Trim();
            user.Email        = EmailAddressTextBox.Text;
            user.CompanyName  = CompanyNameTextBox.Text.Trim();
            user.CountryId    = CountryDropDownList1.SelectedId;
            user.PhoneNumber  = PhoneNumberTextBox.Text.Trim();
            user.MobileNumber = MobileNumberTextBox.Text.Trim();
            user.IsSuspended  = AccountSuspendedCheckbox.Checked;
            user.UserRoleId   = Convert.ToInt32(UserRoleDropDownList.SelectedValue);

            if (user.CountryId == 0)
            {
                user.CountryId = null;
            }

            user.ApproverUserId = null;

            if (ApproverUserDropDownList.SelectedId > 0)
            {
                user.ApproverUserId = ApproverUserDropDownList.SelectedId;
            }

            user.UseWorkflow = (user.UserRole == UserRole.UploadUser && UseWorkflowCheckbox.Checked);
            user.WorkflowId  = null;

            if (user.UseWorkflow && WorkflowDropDownList.GetSelectedId() != 0)
            {
                user.WorkflowId = WorkflowDropDownList.GetSelectedId();
            }

            if (PasswordTextBox.Text.Trim() != string.Empty)
            {
                user.SetPassword(PasswordTextBox.Text);
                user.SetConfirmPassword(ConfirmPasswordTextBox.Text);
            }

            if (IsStaffUserRow.Visible)
            {
                user.IsEmployee = (IsStaffUserRadioButtonList.SelectedValue == "1");
            }

            SaveSelectedBrandsToUser(user);

            if (AdvancedOptionsPanel.Visible)
            {
                user.IsAccountNonExpiring    = AccountNonExpiringCheckbox.Checked;
                user.IsPasswordNonExpiring   = PasswordNonExpiringCheckBox.Checked;
                user.IsAllowedExternalAccess = AccountExternalAccessAllowedCheckbox.Checked;
                user.EnableFilePathIngestion = EnableFilePathIngestionCheckbox.Checked;
            }

            try
            {
                if (user.IsNew)
                {
                    bool notify = true;

                    if (WelcomeEmailCheckBoxRow.Visible && NoWelcomeEmailCheckBox.Checked)
                    {
                        notify = false;
                    }

                    UserManager.Create(user, CurrentUser, notify);
                }
                else
                {
                    UserManager.Update(user);
                    AuditLogManager.LogUserAction(CurrentUser, AuditUserAction.ModifyUser, string.Format("Modified user: {0}, with UserId: {1}", user.FullName, user.UserId));
                }

                UserId               = user.UserId.GetValueOrDefault();
                FormPanel.Visible    = false;
                SuccessPanel.Visible = true;
            }
            catch (InvalidUserException iuex)
            {
                MessageLabel1.SetErrorMessage("the following errors occured:", iuex.Errors);
            }
        }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MessageLabel1.Visible = false;

            if (!Page.IsPostBack)
            {
                if (UserBeingEdited.IsNull)
                {
                    // This is a new user so we need to modify the UI accordingly
                    // Hide panels and buttons that are not relevant

                    IsStaffUserRadioButtonList.SelectedValue = (CurrentUser.IsEmployee) ? "1" : "0";
                    RefreshCompanyDropDownList();

                    if (CurrentUser.UserRole == UserRole.SuperAdministrator)
                    {
                        GeneratedPasswordPanel.Visible  = false;
                        EditPasswordPanel.Visible       = true;
                        NewUserPasswordTooltip.Visible  = true;
                        WelcomeEmailCheckBoxRow.Visible = true;
                    }
                    else
                    {
                        GeneratedPasswordPanel.Visible  = true;
                        EditPasswordPanel.Visible       = false;
                        WelcomeEmailCheckBoxRow.Visible = false;
                    }

                    DatesPanel.Visible = false;
                    AccountExternalAccessAllowedCheckbox.Checked = true;
                    ViewAuditTrailHyperLink.Visible = false;
                    DeleteButton.Visible            = false;
                    EmulateUserButton.Visible       = false;
                    WorkflowDropDownList.SelectValue(0);
                }
                else
                {
                    GeneratedPasswordPanel.Visible  = false;
                    EditPasswordPanel.Visible       = true;
                    NewUserPasswordTooltip.Visible  = false;
                    WelcomeEmailCheckBoxRow.Visible = false;

                    FirstNameTextBox.Text    = UserBeingEdited.FirstName;
                    LastNameTextBox.Text     = UserBeingEdited.LastName;
                    EmailAddressTextBox.Text = UserBeingEdited.Email;
                    CompanyNameTextBox.Text  = UserBeingEdited.CompanyName;
                    PhoneNumberTextBox.Text  = UserBeingEdited.PhoneNumber;
                    MobileNumberTextBox.Text = UserBeingEdited.MobileNumber;
                    CountryDropDownList1.SafeSelectValue(UserBeingEdited.CountryId);

                    UserStatusLabel.Text     = EnumUtils.GetDescription(UserBeingEdited.UserStatus);
                    DateRegisteredLabel.Text = UserBeingEdited.RegisterDate.ToString(Global.DateTimeFormat);
                    APITokenLabel.Text       = UserBeingEdited.UserAPIToken;

                    DateLastLoginLabel.Text = (UserBeingEdited.LastLoginDate.HasValue) ? UserBeingEdited.LastLoginDate.Value.ToString(Global.DateTimeFormat) : "Never";
                    if (DateLastLoginLabel.Text.ToLower() == "never")
                    {
                        DateLastLoginLabel.CssClass = "FbkNegTxt";
                    }

                    DisplayUserPasswordExpiryDate(UserBeingEdited);
                    DisplayUserAccountExpiryDate(UserBeingEdited);

                    AccountSuspendedCheckbox.Checked             = UserBeingEdited.IsSuspended;
                    PasswordNonExpiringCheckBox.Checked          = UserBeingEdited.IsPasswordNonExpiring;
                    AccountNonExpiringCheckbox.Checked           = UserBeingEdited.IsAccountNonExpiring;
                    AccountExternalAccessAllowedCheckbox.Checked = UserBeingEdited.IsAllowedExternalAccess;
                    EnableFilePathIngestionCheckbox.Checked      = UserBeingEdited.EnableFilePathIngestion;

                    UserRoleDropDownList.SelectedValue = UserBeingEdited.UserRoleId.ToString();
                    ApproverUserDropDownList.SafeSelectValue(UserBeingEdited.ApproverUserId);
                    UseWorkflowCheckbox.Checked = UserBeingEdited.UseWorkflow;
                    WorkflowDropDownList.SelectValue(UserBeingEdited.WorkflowId);

                    IsStaffUserRadioButtonList.SelectedValue = (UserBeingEdited.IsEmployee) ? "1" : "0";
                    RefreshCompanyDropDownList();

                    // Only show the audit trail link if the current user has access to the audit trail page
                    SiteUtils.SetHyperLink(CurrentUser, "Reports.AuditTrail", string.Format("?email={0}", UserBeingEdited.Email), ViewAuditTrailHyperLink);
                }
            }
        }