public ActionResult Create(User user, string Password, string PasswordConfirm, FormCollection collection)
        {
            // Реп
            if (DataContext.Users.Any(u => u.Email.ToLower() == user.Email.ToLower()))
            {
                ShowError("Такой пользователь уже зарегистрирован");
                return RedirectToAction("Index");
            }

            // Регистрируем
            user.PasswordHash = PasswordUtils.GenerateMD5PasswordHash(Password);
            user.DateRegistred = DateTime.Now;

            // Устанавливаем допуски для пользователя
            foreach (var projectId in collection.AllKeys.Where(k => k.StartsWith("project_")).Select(key => Convert.ToInt64(key.Split('_')[1])))
            {
                user.ProjectUsers.Add(new ProjectUser()
                {
                    ProjectId = projectId,
                    User = user,
                    DateCreated = DateTime.Now
                });
            }
            foreach (var warehouseId in collection.AllKeys.Where(k => k.StartsWith("warehouse_")).Select(key => Convert.ToInt64(key.Split('_')[1])))
            {
                user.WarehouseKeepers.Add(new WarehouseKeeper()
                {
                    WarehouseId = warehouseId,
                    User = user,
                    DateCreated = DateTime.Now
                });
            }

            DataContext.Users.InsertOnSubmit(user);
            DataContext.SubmitChanges();

            ShowSuccess(string.Format("Успешно зарегистрирован пользователь {0} {1}. На его почту отправлено письмо с информацией о регистрации", user.GetFio(), user.Email));

            // Уведомляем
            var notificationModel = new
            {
                FIO = user.GetFio(),
                Email = user.Email,
                Password = Password
            };

            NotifyEmail(user, "Регистрация в системе LeadControl",
                new ParametrizedFileTemplate(
                    Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Templates", "Mail", "Register.html"),
                    notificationModel).ToString());

            return RedirectToAction("Index");
        }
Beispiel #2
0
 public bool CanChangeStatus(User user)
 {
     if (user.IsAdmin())
     {
         return true;
     }
     if (user.Id == AssignedUserId ||
         (LeadOrderChangements.Count > 0 && LeadOrderChangements.First().AuthorId == user.Id))
     {
         return true;
     }
     return false;
 }
Beispiel #3
0
        /// <summary>
        /// Проверяет, может ли указанный пользователь изменять статус заявки
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool CanChangeStatus(User user)
        {
            if (user.IsAdmin())
            {
                return true;
            }

            if (ManagerId == user.Id && Status != (short) FEAOrderStatus.Completed)
            {
                return true;
            }

            return false;
        }
 /// <summary>
 /// Уведомляем указанного пользователя Email сообщением
 /// </summary>
 /// <param name="user">Пользователь</param>
 /// <param name="subject">Тема сообщения</param>
 /// <param name="content">Содержимое</param>
 public void NotifyEmail(User user, string subject, string content)
 {
     Locator.GetService<IMailNotificationManager>().Notify(user, subject, content);
 }
 /// <summary>
 /// Авторизирует текущего пользователя
 /// </summary>
 /// <param name="user">Пользователь которого установить как текущего</param>
 /// <param name="remember">Запомнить ли пользователя</param>
 public void AuthorizeUser(User user, bool remember = true)
 {
     CurrentUser = user;
     if (remember)
     {
         // Устанавливаем собственные авторизационные куки
         var authCookie = new HttpCookie("auth");
         authCookie.Values["identity"] = user.Email;
         authCookie.Values["pass"] = user.PasswordHash;
         authCookie.Expires = DateTime.Now.AddDays(365);
         Response.Cookies.Add(authCookie);
     }
 }
 /// <summary>
 /// Нотифицирует указанного пользователя сообщением по электронной почте
 /// </summary>
 /// <param name="user">Пользователь</param>
 /// <param name="title">Заголовок письма</param>
 /// <param name="content">Содержимое письма</param>
 public void Notify(User user, string title, string content)
 {
     Notify(user.Email,title,content);
 }
 /// <summary>
 /// Нотифицирует указанного пользователя указанным сообщением по смс
 /// </summary>
 /// <param name="user">Пользователь</param>
 /// <param name="message">сообщение</param>
 public void Notify(User user, string message)
 {
     Notify(user.Phone,message);
 }
        public ActionResult UpdateProfile(User model)
        {
            CurrentUser.FirstName = model.FirstName;
            CurrentUser.LastName = model.LastName;
            CurrentUser.SurName = model.SurName;
            CurrentUser.Phone = model.Phone;
            DataContext.SubmitChanges();

            ShowSuccess("Профиль был успешно сохранен");

            return RedirectToAction("Profile");
        }
		private void detach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.Role = null;
		}
		private void attach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.Role = this;
		}