protected void btnChange_Click(object sender, EventArgs e) { Page.Validate(); if (!Page.IsValid) { return; } if (!PasswordWorkingClass.CheckStrength(newPwd.Text)) { ErrorMessage.Text = "Пароль не соответствует требованиям безопасности (не менее 8 символов, не менее 1 строчной буквы, прописной буквы и цифры)"; return; } try { string userId = User.Identity.Name; MembershipUser mUsr = Membership.GetUser(userId); if (!(mUsr is ClmUser)) { ErrorMessage.Text = "Ошибка определения пользователя"; return; } ClmUser usr = (ClmUser)mUsr; if (usr.ChangePassword(oldPwd.Text, newPwd.Text)) { ErrorMessage.Text = "Пароль изменён успешно"; } else { ErrorMessage.Text = "Ошибка смены пароля"; } } catch { ErrorMessage.Text = "Ошибка смены пароля"; } }
protected void getPassword_Click(object sender, EventArgs e) { try { var oTmp = Membership.GetUser(cbUsers.SelectedValue, false); if (!(oTmp is ClmUser)) { lblStatus.Text = "Неверный пользователь"; return; } ClmUser usr = (ClmUser)oTmp; if (usr.Usr.lastForgPassword != null) { TimeSpan ts = DateTime.Now.ToUniversalTime() - usr.Usr.lastForgPassword.Value; if (ts.Minutes < 5) { lblStatus.Text = "Пароль был отправлен на Ваш e-mail. " + "Повторная отправка пароля возможна не менее чем через 5 минут"; return; } } if (String.IsNullOrEmpty(usr.Email)) { lblStatus.Text = "Невозможно восстановить пароль для данного пользователя"; return; } string erMsg; if (mailService.SendMail(usr.Email, "Ваш пароль в системе онлайн подачи заявок", "Ваш пароль в системе подачи заявок: " + usr.Usr.password, MailPriority.High, out erMsg)) { lblStatus.Text = "Ваш пароль выслан на Ваш e-mail"; try { cbUsers.SelectedValue = usr.Usr.iid; var u = selectedUser(); u.lastForgPassword = DateTime.UtcNow; dc.SaveChanges(); } catch { } } else { lblStatus.Text = "Ошибка отправки пароля на e-mail"; } } catch { } }
private string getTeamRestr() { string res = String.Empty; if (User.Identity.IsAuthenticated(compID)) { if (!User.IsInRole(Constants.ROLE_ADMIN, compID)) { MembershipUser usr = Membership.GetUser(); if (usr is ClmUser) { ClmUser u = (ClmUser)usr; if (u.Usr.team_id != null) { return(u.Usr.team_id.ToString()); } } } } return(res); }
protected void btnChange_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(lblIid.Text)) { lblMessage.Text = "Пользователь не выбран"; return; } int?teamId; if (cbTeams.SelectedValue == "") { teamId = null; } else { int nTmp; if (!int.TryParse(cbTeams.SelectedValue, out nTmp)) { lblMessage.Text = "Команда выбрана неверно."; return; } teamId = nTmp; } try { MembershipUser usr = Membership.GetUser(lblIid.Text); if (!(usr is ClmUser)) { lblMessage.Text = "Ошибка обновления пользователя. Пользователь не найден"; return; } ClmUser cUser = (ClmUser)usr; cUser.Email = tbEmail.Text; cUser.Usr.name = tbName.Text; cUser.Usr.team_id = teamId; Membership.UpdateUser(cUser); lblMessage.Text = "Пользователь обновлён"; if (!rbListCompProperties.SelectedValue.Equals(Constants.ROLE_ADMIN_ROOT) && dc.ONLuserRoles.Count(r => r.role_id == Constants.ROLE_ADMIN_ROOT) < 2) { lblMessage.Text += "; Оставлен статус администратора БД"; RefreshUserList(); } ONLuser u = GetUserByIid(lblIid.Text); if (u == null) { return; } SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.Parameters.Add("@uid", SqlDbType.VarChar, 3); cmd.Parameters[0].Value = u.iid; if (User.IsInRole(Constants.ROLE_ADMIN_ROOT) && rbListCompProperties.SelectedValue.Equals(String.Empty) && CurrentCompetition == null) { cmd.CommandText = "DELETE FROM ONLuserRoles WHERE user_id = @uid"; cmd.ExecuteNonQuery(); } else { if (rbListAdminProperties.Visible) { switch (rbListAdminProperties.SelectedValue) { case Constants.ROLE_ADMIN_ROOT: if (!Roles.IsUserInRole(lblIid.Text, Constants.ROLE_ADMIN_ROOT)) { Roles.AddUserToRole(lblIid.Text, Constants.ROLE_ADMIN_ROOT); } break; default: if (Roles.IsUserInRole(lblIid.Text, Constants.ROLE_ADMIN_ROOT)) { Roles.RemoveUserFromRole(lblIid.Text, Constants.ROLE_ADMIN_ROOT); } break; } } if (rbListCompProperties.Visible) { switch (rbListCompProperties.SelectedValue) { case Constants.ROLE_ADMIN: u.AddUserToCompetition(compID, Constants.ROLE_ADMIN); if (u.team_id != null) { u.ONLteam.AddTeamToCompetition(compID); } break; case Constants.ROLE_USER: u.AddUserToCompetition(compID, Constants.ROLE_USER); if (u.team_id != null) { u.ONLteam.AddTeamToCompetition(compID); } break; default: u.RemoveUserFromCompetition(compID); break; } } } RefreshUserList(); } catch { lblMessage.Text = "Ошибка обновления пользователя."; } }
protected void gvUsers_SelectedIndexChanged(object sender, EventArgs e) { try { object oKey = gvUsers.SelectedValue; if (!(oKey is string)) { return; } string sKey = (string)oKey; MembershipUser usr = Membership.GetUser(sKey); if (!(usr is ClmUser)) { return; } ClmUser cUser = (ClmUser)usr; lblIid.Text = cUser.Usr.iid; tbName.Text = cUser.Usr.name; tbEmail.Text = cUser.Usr.email; if (cUser.Usr.team_id == null) { cbTeams.SelectedValue = ""; } else { try { cbTeams.SelectedValue = cUser.Usr.team_id.ToString(); } catch { } } lblMessage.Text = ""; var u = GetUserByIid(lblIid.Text); if (u == null) { return; } if (rbListAdminProperties.Visible) { if (Roles.IsUserInRole(lblIid.Text, Constants.ROLE_ADMIN_ROOT)) { rbListAdminProperties.SelectedValue = Constants.ROLE_ADMIN_ROOT; } else { rbListAdminProperties.SelectedValue = String.Empty; } } if (rbListCompProperties.Visible) { if (u.ONLuserRoles.Count(r => r.role_id == Constants.ROLE_ADMIN && r.comp_id == compID) > 0) { rbListCompProperties.SelectedValue = Constants.ROLE_ADMIN; } else if (u.ONLuserRoles.Count(r => r.role_id == Constants.ROLE_USER && r.comp_id == compID) > 0) { rbListCompProperties.SelectedValue = Constants.ROLE_USER; } else { rbListCompProperties.SelectedValue = String.Empty; } } } catch { } }