示例#1
0
 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 = "Ошибка смены пароля"; }
 }
示例#2
0
 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);
        }
示例#4
0
        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 = "Ошибка обновления пользователя.";
            }
        }
示例#5
0
        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 { }
        }