public static async Task <bool> RegisterUser(string username, string password)
        {
            using (Data.Contexts.SMEManagementContext db = new Contexts.SMEManagementContext())
            {
                Models.Authentication.User user = await
                                                      (from current in db.Users.Include(".Roles")
                                                      where current.Name == username
                                                      select current).FirstOrDefaultAsync();

                if (user == null)
                {
                    user = new Models.Authentication.User()
                    {
                        Name     = username,
                        Password = Functionalities.Cryptography.HashPassword(password)
                    };

                    await db.Users.AddAsync(user);

                    await db.SaveChangesAsync();

                    if (user.Name == "daniel.amcom" || user.Name == "massato.amcom" || user.Name == "caique.amcom")
                    {
                        await SetRole(user.Name, "Admin", "0");
                    }

                    return(true);
                }

                return(false);
            }
        }
示例#2
0
        public static async Task <bool> RegisterUser(string username, string password)
        {
            using (Data.Contexts.SMEManagementContext db = new Contexts.SMEManagementContext())
            {
                Models.Authentication.User user = await
                                                      (from current in db.Users
                                                      where current.Name == username
                                                      select current).FirstOrDefaultAsync();

                if (user == null)
                {
                    user = new Models.Authentication.User()
                    {
                        Name     = username,
                        Password = Functionalities.Cryptography.HashPassword(password)
                    };

                    await db.Users.AddAsync(user);

                    await db.SaveChangesAsync();

                    return(true);
                }

                return(false);
            }
        }
        public static async Task <bool> SetRole(string username, string roleName, string accessLevelValue)
        {
            using (Contexts.SMEManagementContext db = new Contexts.SMEManagementContext())
            {
                Models.Authentication.User user = await
                                                      (from current in db.Users
                                                      where current.Name == username
                                                      select current).FirstOrDefaultAsync();

                if (user != null)
                {
                    Models.Authentication.Role role = await
                                                          (from current in db.Roles
                                                          where current.Name == roleName
                                                          select current).FirstOrDefaultAsync();

                    if (role != null)
                    {
                        Models.Authentication.AccessLevel accessLevel = await
                                                                            (from current in db.AccessLevels
                                                                            where current.Value == accessLevelValue
                                                                            select current).FirstOrDefaultAsync();

                        if (accessLevel != null)
                        {
                            Models.Authentication.UserRole userRole = await
                                                                          (from current in db.UserRoles
                                                                          where current.AccessLevelId == accessLevel.Id &&
                                                                          current.RoleId == role.Id &&
                                                                          current.UserId == user.Id
                                                                          select current).FirstOrDefaultAsync();

                            if (userRole == null)
                            {
                                userRole = new Models.Authentication.UserRole()
                                {
                                    User        = user,
                                    Role        = role,
                                    AccessLevel = accessLevel
                                };

                                await db.UserRoles.AddAsync(userRole);

                                await db.SaveChangesAsync();
                            }

                            return(true);
                        }
                    }
                }

                return(false);
            }
        }
        // Corrigir esste método
        private static async Task <Models.Authentication.User> GetUserById(string id)
        {
            using (Data.Contexts.SMEManagementContext db = new Contexts.SMEManagementContext())
            {
                Models.Authentication.User user = await
                                                      (from current in db.Users.Include(".Profile.Roles")
                                                      where current.Id == id
                                                      select current).FirstOrDefaultAsync();

                return(user);
            }
        }
        public static async Task <bool> ResetSenha(string username, string newPassword)
        {
            using (Data.Contexts.SMEManagementContextData db = new Contexts.SMEManagementContextData())
            {
                Models.Authentication.User user = await
                                                      (from current in db.Users
                                                      where current.Name == username
                                                      select current).FirstOrDefaultAsync();

                if (user != null)
                {
                    user.Password = Functionalities.Cryptography.HashPassword(newPassword);
                    await db.SaveChangesAsync();

                    return(true);
                }
            }

            return(false);
        }
        public static async Task <bool> LoginUser(string username, string session, string refreshToken)
        {
            using (Data.Contexts.SMEManagementContext db = new Contexts.SMEManagementContext())
            {
                Models.Authentication.LoggedUser loggedUser = await
                                                                  (from current in db.LoggedUsers.Include(".User")
                                                                  where current.User.Name == username
                                                                  select current).FirstOrDefaultAsync();

                if (loggedUser == null)
                {
                    Models.Authentication.User user = await
                                                          (from current in db.Users
                                                          where current.Name == username
                                                          select current).FirstOrDefaultAsync();

                    loggedUser = new Models.Authentication.LoggedUser()
                    {
                        User         = user,
                        RefreshToken = refreshToken,
                        Session      = session,
                        LastAccess   = DateTime.Now,
                        ExpiresAt    = DateTime.Now.AddMinutes(30)
                    };

                    await db.LoggedUsers.AddAsync(loggedUser);
                }
                else
                {
                    loggedUser.RefreshToken = refreshToken;
                    loggedUser.Session      = session;
                    loggedUser.LastAccess   = DateTime.Now;
                    loggedUser.ExpiresAt    = DateTime.Now.AddMinutes(30);
                }

                await db.SaveChangesAsync();

                return(true);
            }
        }