Exemple #1
0
        public async Task <Response <SecureUser> > Create(User user)
        {
            IReadOnlyCollection <DataAccess.Models.User> users = await userRepository.GetAllAsync();

            if (users.Any(existingUser => existingUser.Login == user.Login))
            {
                string errorMessage = "User with this login already exists";
                return(new Response <SecureUser>(errorMessage));
            }

            if (users.Any(existingUser => existingUser.Email == user.Email))
            {
                string errorMessage = "User with this email already exists";
                return(new Response <SecureUser>(errorMessage));
            }

            DataAccess.Models.User u = mapper.Map <User, DataAccess.Models.User>(user);
            u.Password = BCrypt.Net.BCrypt.HashPassword(u.Password);

            try
            {
                SecureUser newUser = mapper.Map <DataAccess.Models.User, SecureUser>(await userRepository.CreateAsync(u));
                return(new Response <SecureUser>(newUser));
            }
            catch (Exception e)
            {
                logger.LogError(e.InnerException.Message);
                string errorMessage = "An error occured while creating new user";
                return(new Response <SecureUser>(errorMessage));
            }
        }
Exemple #2
0
        public async Task <SecureUser> GetUserByToken(string token)
        {
            IEnumerable <User> users = (await userRepository.GetAllAsync()).AsQueryable().ProjectTo <User>(mapper.ConfigurationProvider);
            SecureUser         user  = mapper.Map <SecureUser>(users.Where(t => t.RefreshToken == token).FirstOrDefault());

            return(user);
        }
Exemple #3
0
        public ActionResult Login(string email, string pass)
        {
            using (BrushFX_DBEntities db = new BrushFX_DBEntities())
            {
                SecureUser sU = new SecureUser();
                sU.EmailAddress = email;
                var hashPass = HashPass(pass);
                sU.PasswordHash = hashPass;

                var usr =
                    db.SecureUsers.Where(u => u.EmailAddress == email &&
                                         u.PasswordHash == hashPass).FirstOrDefault();

                if (usr != null)
                {
                    Session["UserKey"] = usr.UserKey.ToString();
                    Session["Email"]   = usr.EmailAddress.ToString();

                    FormsAuthentication.SetAuthCookie(sU.UserKey.ToString(), true);
                    return(RedirectToAction("Index", "Gallery"));
                }
                else
                {
                    ModelState.AddModelError("LogOnError", "The user name or password entered is incorrect");
                    return(View());
                }

                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Index", "Home"));
        }
 private ComponentIntegrationFacade()
 {
     user        = new SecureUser();
     role        = new SecureRole(user);
     permissions = new SecurePermissions(user);
     document    = new SecureDocument(user);
     company     = new SecureCompany(user);
 }
Exemple #5
0
        public async Task <IActionResult> GetByToken(string token)
        {
            if (token == null)
            {
                return(BadRequest("Empty token"));
            }

            SecureUser user = await userService.GetUserByToken(token);

            return(Ok(user));
        }
Exemple #6
0
        public ActionResult Register(SecureUser acc)
        {
            if (ModelState.IsValid)
            {
                using (BrushFX_DBEntities db = new BrushFX_DBEntities())
                {
                    var hashedPass = HashPass(acc.EmailAddress.ToString());
                    //Check if that user already exists

                    SecureUser emailCheck = db.SecureUsers.FirstOrDefault(u => u.EmailAddress.ToLower().ToString() == acc.EmailAddress.ToLower().ToString());

                    if (emailCheck == null)
                    {
                        //Call method to register account
                        SaveChanges(acc);
                        //Take them to look at pictures on successful registration
                        SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);

                        //remove mine once Nick gets it
                        mailClient.Credentials = new NetworkCredential("*****@*****.**", "Password123!1");
                        MailMessage mailMessage = new MailMessage();
                        mailMessage.From = new MailAddress("*****@*****.**");
                        mailMessage.To.Add(acc.EmailAddress.ToString());
                        mailMessage.Subject = "BrushFX Sign Up";
                        mailMessage.Body    = "Thank you for signing up for BrushFX! Track all of your past, and plan for your future work at our website!";

                        try
                        {
                            mailClient.Send(mailMessage);
                        } catch (SmtpFailedRecipientException e)
                        {
                            Console.WriteLine("Email message failed to send to user: "******"Index", "Gallery"));
                    }
                    else
                    {
                        ModelState.AddModelError("emailExists", "This email already exists. Please Sign in or register a new email address");
                        return(View());
                    }
                }
                ModelState.Clear();
                ViewBag.Message = acc.UserName + " successfully registerd";
            }
            return(View());
        }
Exemple #7
0
        public async Task <ActionResult> Delete(int id)
        {
            SecureUser user = await userService.GetSecureUserById(id);

            if (user == null)
            {
                return(NotFound("User not found"));
            }

            // Uncomment this when task service will be implemented

            //if((await taskService.GetAllAsync()).AsEnumerable().Any(t => t.Manager.Id == id || t.Executor.Id == id))
            //{
            //    return BadRequest("You can't delete users with active or completed tasks. Try to deactivate account instead.");
            //}

            await userService.Delete(id);

            return(Ok(user));
        }
Exemple #8
0
        //Creates a new user
        public ActionResult SaveChanges(SecureUser userAcc)
        {
            BrushFX_DBEntities db = new BrushFX_DBEntities();

            SecureUser sc = new SecureUser();

            sc.UserName     = userAcc.UserName;
            sc.EmailAddress = userAcc.EmailAddress;
            sc.PasswordHash = HashPass(userAcc.PasswordHash);
            sc.UserKey      = userAcc.UserKey;

            Session["UserKey"]  = sc.UserKey.ToString();
            Session["UserName"] = sc.UserName.ToString();

            //Signs and passes the authenticated credentials for the entirety of the session
            FormsAuthentication.SetAuthCookie(sc.UserKey.ToString(), true);

            db.SecureUsers.Add(sc);
            db.SaveChanges();

            return(RedirectToAction("Index", "Gallery"));
        }
Exemple #9
0
        public async Task <IActionResult> Get(int id)
        {
            SecureUser user = await userService.GetSecureUserById(id);

            return(Ok(user));
        }