예제 #1
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()
 {
     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 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"));
        }