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(); }
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); } }
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); } } }