public async Task <ActionResult> Edit([Bind(Include = "ID_Pass,S_Pas,N_Pas,Sotr_ID")] Pass_Dannie pass_Dannie)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //Если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    pass_Dannie.N_Pas = Shifrovanie.Encryption(pass_Dannie.N_Pas);
                    pass_Dannie.S_Pas = Shifrovanie.Encryption(pass_Dannie.S_Pas);
                    //Сохранение измений
                    db.Entry(pass_Dannie).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    //Обновление у всех пользователей данных
                    EmployeesHub.BroadcastData();
                    return(RedirectToAction("Index"));
                }
                //Список сотрудников
                ViewBag.Sotr_ID = new SelectList(db.Sotrs.Where(i => i.fired == false && i.Accounts.Block == false), "ID_Sotr", "Full", pass_Dannie.Sotr_ID);
                var fio = db.Sotrs.Where(f => f.ID_Sotr == pass_Dannie.Sotr_ID).FirstOrDefault();
                ViewBag.fio = fio.Full;
                return(View(pass_Dannie));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
예제 #2
0
 public ActionResult Login(LoginModel model)
 {
     //Если не авторизован
     if (User.Identity.IsAuthenticated)
     {
         //Переход на начальную страницу
         return(RedirectToAction("Index", "Home"));
     }
     else
     {
         //Если валидация прошла успешно
         if (ModelState.IsValid)
         {
             // поиск пользователя в бд
             Accounts user = null;
             string   pa   = Shifrovanie.Hash(model.Password);
             //Поиск аккаунта по логину и паролю
             user = db.Accounts.FirstOrDefault(u => u.Login == model.Login && u.Password_Shifr == pa);
             //Если найден, то открыть домашнюю страницу
             if (user != null)
             {
                 ViewBag.noacc = false;
                 //Указываем логин для пользователя
                 FormsAuthentication.SetAuthCookie(model.Login, true);
                 //Поиск данных пользователя
                 var s = db.Sotrs.Where(sot => sot.Login_Acc == model.Login).FirstOrDefault();
                 //Необходимо присвоить данные для отображения в личном кабинете
                 Session["FIO"]          = s.Surname_Sot + " " + s.Name_Sot + " " + s.Petronumic_Sot;
                 Session["Email"]        = s.Email;
                 Session["Num_Phone"]    = s.Num_Phone;
                 Session["Address"]      = Shifrovanie.Decryption(s.Address);
                 Session["Day_Of_Birth"] = s.Day_Of_Birth;
                 Session["Photo"]        = s.Photo;
                 Session["Dolj"]         = "Статус: Гость";
                 Session["Guest"]        = s.Guest;
                 //Если не гость, не заблокирован и не уволенный
                 if ((bool)Session["Guest"] == false && s.Accounts.Block == false && s.fired == false)
                 {
                     //Получение прав доступа
                     Session["Manip_Sotrs"]      = s.Accounts.Roles.Manip_Sotrs;
                     Session["Manip_Roles"]      = s.Accounts.Roles.Manip_Roles;
                     Session["Manip_Tests"]      = s.Accounts.Roles.Manip_Tests;
                     Session["Manip_Department"] = s.Accounts.Roles.Manip_Department;
                     Session["Dolj"]             = "Статус: Сотрудник ";
                 }
                 //Переход в личный кабинет
                 return(RedirectToAction("Index", "Home"));
             }
             //Иначе вывести надпись, что пользователь отсутствует
             else
             {
                 //Вывод блока с сообщением, что данного пользователя нет
                 ViewBag.noacc  = true;
                 ViewBag.noacct = "Пользователя с данным логином и паролем не существует";
                 return(View(model));
             }
         }
     }
     return(View(model));
 }
        // GET: Pass_Dannie1/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                if (id == null)
                {
                    //400 ошибка
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                //Поиск по ключу
                Pass_Dannie pass_Dannie = await db.Pass_Dannie.FindAsync(id);

                pass_Dannie.S_Pas = Shifrovanie.Decryption(pass_Dannie.S_Pas);
                pass_Dannie.N_Pas = Shifrovanie.Decryption(pass_Dannie.N_Pas);
                var fio = db.Sotrs.Where(f => f.ID_Sotr == pass_Dannie.Sotr_ID).FirstOrDefault();
                ViewBag.fio = fio.Full;
                if (pass_Dannie == null)
                {
                    //404 ошибка
                    return(HttpNotFound());
                }
                //Список сотрудников
                ViewBag.Sotr_ID = new SelectList(db.Sotrs.Where(i => i.fired == false && i.Accounts.Block == false), "ID_Sotr", "Full", pass_Dannie.Sotr_ID);
                return(View(pass_Dannie));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public ActionResult Settings(Sotrs sotrs)
        {
            if (User.Identity.IsAuthenticated)
            {
                //Если картинка загружена
                if (sotrs.ImageUpload != null)
                {
                    string filename  = Path.GetFileNameWithoutExtension(sotrs.ImageUpload.FileName);
                    string extension = Path.GetExtension(sotrs.ImageUpload.FileName);
                    filename    = filename + DateTime.Now.ToString("yymmssfff") + extension;
                    sotrs.Photo = "/Content/Photo/st/" + filename;
                    sotrs.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Content/Photo/st/"), filename));
                }
                try
                {
                    //Обновление данных
                    //Изменение данных
                    sotrs.Address           = Shifrovanie.Encryption(sotrs.Address);
                    db.Entry(sotrs).State   = EntityState.Modified;
                    Session["FIO"]          = sotrs.Surname_Sot + " " + sotrs.Name_Sot + " " + sotrs.Petronumic_Sot;
                    Session["Email"]        = sotrs.Email;
                    Session["Num_Phone"]    = sotrs.Num_Phone;
                    Session["Address"]      = sotrs.Address;
                    Session["Day_Of_Birth"] = sotrs.Day_Of_Birth;
                    Session["Photo"]        = sotrs.Photo;
                    Session["Dolj"]         = "Статус: Гость";
                    var s = db.Sotrs.Include(sot => sot.Accounts).Where(sot => sot.Login_Acc == User.Identity.Name).FirstOrDefault();
                    Session["Guest"] = s.Guest;
                    //Если не гость, не заблокирован, не уволен
                    if ((bool)Session["Guest"] == false && s.Accounts.Block == false && s.fired == false)
                    {
                        Session["Manip_Sotrs"]      = s.Accounts.Roles.Manip_Sotrs;
                        Session["Manip_Roles"]      = s.Accounts.Roles.Manip_Roles;
                        Session["Manip_Tests"]      = s.Accounts.Roles.Manip_Tests;
                        Session["Manip_Department"] = s.Accounts.Roles.Manip_Department;
                    }
                    //Сохранение
                    db.SaveChanges();
                    //сообщение об изменении данных
                    ViewBag.Suc    = true;
                    ViewBag.SucMes = "Ваши данные аккаунта успешно изменены";
                    return(View(sotrs));
                }

                catch
                {
                    //список аккаунтов
                    ViewBag.Login_Acc = new SelectList(db.Accounts, "Login", "Password", sotrs.Login_Acc);
                    return(View(sotrs));
                }
            }
            else
            {
                return(Redirect("/Error/NotAuth"));
            }
        }
 public ActionResult Settings()
 {
     if (User.Identity.IsAuthenticated)
     {
         ViewBag.Suc    = false;
         ViewBag.SucMes = "";
         //получение данных аккаунта
         var   s     = db.Sotrs.Where(sot => sot.Login_Acc == User.Identity.Name).FirstOrDefault();
         Sotrs sotrs = new Sotrs();
         sotrs         = db.Sotrs.Find(s.ID_Sotr);
         sotrs.Address = Shifrovanie.Decryption(sotrs.Address);
         if (sotrs == null)
         {
             //404 ошибка
             return(HttpNotFound());
         }
         return(View(sotrs));
     }
     else
     {
         return(Redirect("/Error/NotAuth"));
     }
 }
 public ActionResult AddOrEdit(int id = 0)
 {
     if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
     {
         Sotrs sotrs = new Sotrs();
         //Если ключ = 0
         if (id == 0)
         {
             //Список аккаунтов
             ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login");
             return(View(sotrs));
         }
         else
         {
             //Поиск по ключу
             sotrs = db.Sotrs.Find(id);
             if (sotrs == null)
             {
                 //404 ошибка
                 return(HttpNotFound());
             }
             sotrs.Address = Shifrovanie.Decryption(sotrs.Address);
             //Список аккаунтов
             ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
             if (sotrs == null)
             {
                 //404 ошибка
                 return(HttpNotFound());
             }
             return(View(sotrs));
         }
     }
     else
     {
         return(Redirect("/Error/NotRight"));
     }
 }
        public async Task <ActionResult> Create([Bind(Include = "ID_Pass,S_Pas,N_Pas,Sotr_ID")] Pass_Dannie pass_Dannie)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //Если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    //Добавление данных
                    db.Pass_Dannie.Add(new Pass_Dannie {
                        Sotr_ID = pass_Dannie.Sotr_ID,
                        N_Pas   = Shifrovanie.Encryption(pass_Dannie.N_Pas),
                        S_Pas   = Shifrovanie.Encryption(pass_Dannie.S_Pas)
                    });
                    //Сохранение
                    await db.SaveChangesAsync();

                    //Обновление списка пасортных данных у всех пользователей
                    EmployeesHub.BroadcastData();
                    return(RedirectToAction("Index"));
                }
                //Список сотрудников
                string        constr = ConfigurationManager.ConnectionStrings["PersonalContext"].ToString();
                SqlConnection _con   = new SqlConnection(constr);
                //Поиск сотрудников, которым не назначены должностные инструкции
                SqlDataAdapter _da = new SqlDataAdapter("SELECT ID_Sotr, Surname_Sot + ' ' + Name_Sot + ' ' + Petronumic_Sot + ' (' + Login_Acc + ')' as FIO FROM Sotrs LEFT JOIN Pass_Dannie ON Sotrs.ID_Sotr=Pass_Dannie.Sotr_ID WHERE Guest = 'false' and [fired] = 'false' and Pass_Dannie.Sotr_ID IS NULL", constr);
                DataTable      _dt = new DataTable();
                _da.Fill(_dt);
                //Список сотрудников
                ViewBag.Sotr_ID = ToSelectList(_dt, "ID_Sotr", "FIO", pass_Dannie.Sotr_ID);
                return(View(pass_Dannie));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
 public ActionResult SettPersDannie(newPass mod)
 {
     if (User.Identity.IsAuthenticated)
     {
         if (ModelState.IsValid)
         {
             //Хеширование старого пароля
             string psh = Shifrovanie.Hash(mod.password.ToString());
             //Хеширование нового пароля
             string     pshnew  = Shifrovanie.Hash(mod.password1.ToString());
             SqlCommand command = new SqlCommand("", Program.SqlConnection);
             //сравнение паролей
             command.CommandText = "SELECT count(*) FROM dbo.Accounts where [dbo].[Accounts].[Login] = '" + User.Identity.Name + "' and [dbo].[Accounts].[Password_Shifr] = '" + psh + "'";
             Program.SqlConnection.Open();
             int co = Convert.ToInt32(command.ExecuteScalar());
             Program.SqlConnection.Close();
             if (co > 0)
             {
                 if (mod.password1 == mod.password2 && mod.password1 != "" && mod.password2 != "")
                 {
                     //Смена пароля
                     ViewBag.New         = "";
                     ViewBag.NewPass     = "";
                     ViewBag.OldPass     = "";
                     command.CommandText = "update Accounts " +
                                           "set " +
                                           "Password = '******', " +
                                           "Password_Shifr = '" + pshnew + "' " +
                                           "where Login = '******'";
                     Program.SqlConnection.Open();
                     command.ExecuteScalar();
                     Program.SqlConnection.Close();
                     ViewBag.SucMes = "Пароль изменен!";
                     ViewBag.Suc    = true;
                     return(View(mod));
                 }
                 else
                 {
                     //Если новые пароли не совпадают
                     ModelState.AddModelError("password1", "Новые пароли не совпадают");
                     ModelState.AddModelError("password2", "Новые пароли не совпадают");
                     return(View(mod));
                 }
             }
             else
             {
                 //Если пароль старый указан неверно
                 ModelState.AddModelError("password", "Старый пароль указан неверно");
                 return(View(mod));
             }
         }
         else
         {
             //Если поля пустые
             ModelState.AddModelError("password", "Поля не заполнены");
             ModelState.AddModelError("password1", "Поля не заполнены");
             ModelState.AddModelError("password2", "Поля не заполнены");
             return(View(mod));
         }
     }
     else
     {
         return(Redirect("/Error/NotAuth"));
     }
 }
        public ActionResult Index()
        {
            //Обновление испытательных сроков
            Program.update();
            ViewBag.isp = Program.colIsp;
            if (User.Identity.IsAuthenticated)
            {
                //Получение данных о пользователе
                var s = db.Sotrs.Where(sot => sot.Login_Acc == User.Identity.Name).FirstOrDefault();
                Session["FIO"]          = s.Surname_Sot + " " + s.Name_Sot + " " + s.Petronumic_Sot;
                Session["Email"]        = s.Email;
                Session["Num_Phone"]    = s.Num_Phone;
                Session["Address"]      = Shifrovanie.Decryption(s.Address);
                Session["Day_Of_Birth"] = s.Day_Of_Birth;
                Session["Photo"]        = s.Photo;
                Session["Dolj"]         = "Статус: Гость";
                Session["log"]          = "Ваш логин: " + User.Identity.Name;
                Session["Guest"]        = s.Guest;
                //Если не гость, не заблокирован, не уволен
                if ((bool)Session["Guest"] == false && s.Accounts.Block == false && s.fired == false)
                {
                    Session["Manip_Sotrs"]      = s.Accounts.Roles.Manip_Sotrs;
                    Session["Manip_Roles"]      = s.Accounts.Roles.Manip_Roles;
                    Session["Manip_Tests"]      = s.Accounts.Roles.Manip_Tests;
                    Session["Manip_Department"] = s.Accounts.Roles.Manip_Department;
                    Session["Dolj"]             = "Статус: Сотрудник";
                    var p = db.Posit_Responsibilities.Where(po => po.Sotrs.Login_Acc == User.Identity.Name).FirstOrDefault();
                    if (p != null)
                    {
                        //Данные испытательного срока
                        var isp = db.Isp_Sroki.Where(i => i.Pos_Res_ID == p.ID_Pos_Res).FirstOrDefault();
                        if (isp != null)
                        {
                            switch (isp.Status_ID)
                            {
                            case 1:
                                ViewBag.isp = 100;
                                break;

                            case 2:
                                ViewBag.isp = 50;
                                break;

                            case 3:
                                ViewBag.isp = 75;
                                break;

                            case 4:
                                ViewBag.isp = 0;
                                break;
                            }
                        }
                        else
                        {
                            ViewBag.isp = 0;
                        }
                        //Этапы принятия
                        var step = db.Steps.Where(st => st.Sotrs.Login_Acc == User.Identity.Name);
                        if (step != null)
                        {
                            ViewBag.steps = step.ToList();
                        }
                    }
                    return(View());
                }
                else
                {
                    return(View());
                }
            }
            //Не авторизованный пользователь
            return(RedirectToAction("NotAuth", "Error"));
        }
예제 #10
0
        public ActionResult Register(RegisterModel model)
        {
            //Если значение поля для загрузки фото не пустое
            if (model.ImageUpload != null)
            {
                //Получение имени файла
                string filename = Path.GetFileNameWithoutExtension(model.ImageUpload.FileName);
                //Расширение файла
                string extension = Path.GetExtension(model.ImageUpload.FileName);
                //Новое уникальное наименование, которое будет занесено в БД
                filename = filename + DateTime.Now.ToString("yymmssfff") + extension;
                //Значение для поля Фото, которое будет добавлено в БД с путем к файлу
                model.Photo = "/Content/Photo/st/" + filename;
                //Загрузка фото в папку
                model.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Content/Photo/st/"), filename));
            }
            else
            {
                //Иначе дефолтное значение
                model.Photo = "/Content/Photo/st/default.png";
            }
            Accounts user = null;

            //Поиск пльзователей с таким логином
            user = db.Accounts.FirstOrDefault(u => u.Login == model.Login);
            //Если не найдено, то добавляем нового
            if (user == null)
            {
                //Если валидация пройдена успешно
                if (ModelState.IsValid)
                {
                    //Создаем команду
                    SqlCommand command = new SqlCommand("", Program.SqlConnection);
                    //Запрос для команды (проверка на возраст)
                    command.CommandText = "select Datediff(year, '" + model.Day_Of_Birth + "', getdate())";
                    int?voz = 0;
                    Program.SqlConnection.Open();
                    // Выполнение команды
                    voz = (int)command.ExecuteScalar();
                    Program.SqlConnection.Close();
                    //В соответствии со ст. 63 ТК РФ, Официально можно работать в России с 16 лет
                    //Проверка, есть ли пользователю 16 лет и более
                    if (voz <= 16)
                    {
                        ModelState.AddModelError("Day_Of_Birth", "Возрастные ограничения 18+");
                        return(View(model));
                    }
                    Session["War"] = false;
                    //Добавление нового аккаунта
                    db.Accounts.Add(new Accounts {
                        Login = model.Login, Password = model.Password, Password_Shifr = Shifrovanie.Hash(model.Password), Role_ID = 4, Logical_Delete = false, Block = false
                    });
                    //Сохранение данных
                    db.SaveChanges();
                    //Добавление сотрудника
                    db.Sotrs.Add(new Sotrs
                    {
                        Surname_Sot      = model.Surname_Sot,
                        Name_Sot         = model.Name_Sot,
                        Petronumic_Sot   = model.Petronumic_Sot,
                        Day_Of_Birth     = model.Day_Of_Birth,
                        Address          = Shifrovanie.Encryption(model.Address),
                        Num_Phone        = model.Num_Phone,
                        Email            = model.Email,
                        Photo            = model.Photo,
                        Date_of_adoption = null,
                        fired            = false,
                        Guest            = true,
                        Logical_Delete   = false,
                        Login_Acc        = model.Login
                    });
                    //Сохранение данных
                    db.SaveChanges();
                    //Отправка письма на почту
                    EmailTo.MySendMail("" +

                                       "Приветствуем, " + model.Surname_Sot + " " + model.Name_Sot + " " + model.Petronumic_Sot + "! <br>Мы рады, " +
                                       "что вы зарегистрировались в нашей системе. Мы надеемся, что не разочаруем Вас. С радостью ответим на Ваши вопросы." +
                                       "<br><br>Ваш Логин: " + model.Login + " <br>Пароль: " + model.Password,
                                       model.Email, "Компания CMS", "Регистрация на сайте компании CMS");
                    //Поиск пользователя
                    user = db.Accounts.Where(u => u.Login == model.Login && u.Password == model.Password).FirstOrDefault();
                    //Если пользователь найден
                    if (user != null)
                    {
                        //Авторизовываем пользователя
                        FormsAuthentication.SetAuthCookie(model.Login, true);
                        //Получение данных о пользователе
                        var s = db.Sotrs.Where(sot => sot.Login_Acc == model.Login);
                        Session["FIO"]          = model.Surname_Sot + " " + model.Name_Sot + " " + model.Petronumic_Sot;
                        Session["Email"]        = model.Email;
                        Session["Num_Phone"]    = model.Num_Phone;
                        Session["Address"]      = model.Address;
                        Session["Day_Of_Birth"] = model.Day_Of_Birth;
                        Session["Photo"]        = model.Photo;
                        Session["Dolj"]         = "Статус: Гость";
                        //Открытие личного кабинета
                        EmployeesHub.BroadcastData();
                        return(RedirectToAction("Index", "Home"));
                    }
                    //Иначе выводим надпись, данные введены некоррекно
                    else
                    {
                        ModelState.AddModelError("", "Попробуйте зарегистрироваться снова");
                        Session["War"] = true;
                        return(View(model));
                    }
                }
            }
            else
            {
                //Сообщение, что пользователь с таким логином уже существует
                ModelState.AddModelError("", "Пользователь с данным логином уже существует");
                Session["War"] = true;
                return(View(model));
            }

            return(View(model));
        }
 public ActionResult AddOrEdit(Sotrs sotrs)
 {
     if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
     {
         if (sotrs.Guest == false && sotrs.Date_of_adoption == null)
         {
             //Если значение гость = false, необходимо указать дату принятия
             ViewBag.Login_Acc = new SelectList(db.Accounts, "Login", "Login", sotrs.Login_Acc);
             ModelState.AddModelError("Date_of_adoption", "Необходимо указать дату приема данного сотрудника");
             return(View(sotrs));
         }
         SqlCommand command = new SqlCommand("", Program.SqlConnection);
         //Запрос на получение возраста
         command.CommandText = "select Datediff(year, '" + sotrs.Day_Of_Birth + "', getdate())";
         int?voz = 0;
         Program.SqlConnection.Open();
         //Получение позраста
         voz = (int)command.ExecuteScalar();
         Program.SqlConnection.Close();
         if (voz < 16)
         {
             //Сообщение о возрастных ограничениях
             ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
             ModelState.AddModelError("Day_Of_Birth", "Возрастные ограничения 18+");
             return(View(sotrs));
         }
         if (sotrs.ImageUpload != null)
         {
             //Загрузка фото пользователя
             string filename  = Path.GetFileNameWithoutExtension(sotrs.ImageUpload.FileName);
             string extension = Path.GetExtension(sotrs.ImageUpload.FileName);
             filename    = filename + DateTime.Now.ToString("yymmssfff") + extension;
             sotrs.Photo = "/Content/Photo/st/" + filename;
             sotrs.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Content/Photo/st/"), filename));
         }
         if (sotrs.ID_Sotr.Equals(0))
         {
             try
             {
                 //Добавление пользователя
                 sotrs.Address = Shifrovanie.Encryption(sotrs.Address);
                 db.Sotrs.Add(sotrs);
                 //Сохранение
                 db.SaveChanges();
                 EmployeesHub.BroadcastData();
                 return(Redirect(Session["perehod"].ToString()));
             }
             catch
             {
                 //Список аккаунтов
                 ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
                 return(View(sotrs));
             }
         }
         else
         {
             try
             {
                 //Изменение данных
                 sotrs.Address         = Shifrovanie.Encryption(sotrs.Address);
                 db.Entry(sotrs).State = EntityState.Modified;
                 //Сохранение данных
                 db.SaveChanges();
                 //Список аккаунтов
                 ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
                 EmployeesHub.BroadcastData();
                 return(Redirect(Session["perehod"].ToString()));
             }
             catch
             {
                 //Список аккаунтов
                 ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
                 return(View(sotrs));
             }
         }
     }
     else
     {
         return(Redirect("/Error/NotRight"));
     }
 }