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