// -- Snip --
 public override string[] GetAllRoles()
 {
     using (var usersContext = new DataContext())
     {
         return usersContext.Roles.Select(r => r.RoleName).ToArray();
     }
 }
        public override string[] GetRolesForUser(string username)
        {
            using (var usersContext = new DataContext())
            {
                UserModel user = new UserModel();
                try
                {
                    user = usersContext.Users.SingleOrDefault(u => u.Email == username);

                    if (user == null)
                        return new string[] { };
                    return user.UserRoles == null ? new string[] { } :
                      user.UserRoles.Select(u => u.Role).Select(u => u.RoleName).ToArray();
                }
                catch (Exception ex)
                {
                    //Ignore
                    //Problem occur only where the program is trying to
                    //recreate the user into the database in which the
                    //database will not allow it to happen.

                    //Return default
                    return user.UserRoles == null ? new string[] { } :
                      user.UserRoles.Select(u => u.Role).Select(u => u.RoleName).ToArray();

                }
            }
        }
Exemplo n.º 3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            DataContext db = new DataContext();
            //Create all the roles
            db.AddRole();

            //Create Adminstrator
            db.CreateAdmin();

            //Operators for testing purpose: To be removed upon releasing
            db.CreateOrganization();
            //db.CreateDiveResortOp();
            //db.CreateDiveSiteOp();
        }
 public override bool IsUserInRole(string username, string roleName)
 {
     using (var usersContext = new DataContext())
     {
         var user = usersContext.Users.SingleOrDefault(u => u.Email == username);
         if (user == null)
             return false;
         return user.UserRoles != null && user.UserRoles.Select(
              u => u.Role).Any(r => r.RoleName == roleName);
     }
 }
Exemplo n.º 5
0
        public ActionResult CreateUser(UserModel user)
        {
            if (ModelState.IsValid)
            {

                using (var db = new DataContext())
                {
                    //By default all registration of any user will start off as a normal user till they decide to request for a operator role
                    //in manage a site/resort or both.
                    if (db.Users.FirstOrDefault(u => u.Email == user.Email) == null)
                    {
                        var crypto = new SimpleCrypto.PBKDF2();

                        var encryptPass = crypto.Compute(user.Password);

                        var u = new UserModel();

                        u.Email = user.Email;
                        u.Password = encryptPass;
                        u.PasswordSalt = crypto.Salt;
                        db.Users.Add(u);
                        db.SaveChanges();

                        UserRole UR = new UserRole();
                        UR.UserId = u.UserId;

                        //Get from User input upon creating a new User
                        //u.UserRoles = user.UserRoles;

                        //Role R = new Role();
                        //foreach (var role in db.Roles.ToList())
                        //{
                        //    if (role.RoleName == u.UserRoles.ToString())
                        //    {
                        //        R = role;
                        //        break;
                        //    }
                        //}

                        Role R = new Role();
                        foreach (var role in db.Roles.ToList())
                        {
                            if (role.RoleName == "Organization")
                            {
                                R = role;
                                break;
                            }
                        }

                        UR.RoleId = R.RoleId;
                        UR.Role = R;
                        db.UserRoles.Add(UR);
                        db.SaveChanges();

                        OrganizationModel info = new OrganizationModel();
                        db.OrganizationInfo.Add(info);
                        db.SaveChanges();

                        u.OrganizationId = info.OrganizationId;
                        db.SaveChanges();

                        return Login(user);
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "Data input is incorrect!");
            }
            return View();
        }
Exemplo n.º 6
0
        private UserModel SetupFormsAuthTicket(string userName, bool persistanceFlag)
        {
            UserModel user;
            using (var usersContext = new DataContext())
            {
                user = usersContext.GetUser(userName);
            }
            var userId = user.UserId;
            var userData = userId.ToString(CultureInfo.InvariantCulture);
            var authTicket = new FormsAuthenticationTicket(1, //version
                                userName, // user name
                                DateTime.Now,             //creation
                                DateTime.Now.AddMinutes(30), //Expiration
                                persistanceFlag, //Persistent
                                userData);

            var encTicket = FormsAuthentication.Encrypt(authTicket);
            Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
            return user;
        }
Exemplo n.º 7
0
        private bool IsValid(string email, string password)
        {
            var crypto = new SimpleCrypto.PBKDF2();
            bool isValid = false;

            using (var db = new DataContext())
            {
                var user = db.Users.FirstOrDefault(u => u.Email == email);

                if (user != null)
                {
                    if (user.Password == crypto.Compute(password, user.PasswordSalt))
                    {
                        isValid = true;
                    }
                }
            }

            return isValid;
        }
Exemplo n.º 8
0
        public void CreateOrganization()
        {
            UserModel user = new UserModel();

            user.Email = "*****@*****.**";
            user.Password = "******";

            using (var db = new DataContext())
            {
                try
                {
                    if (db.Users.FirstOrDefault(u => u.Email == user.Email) == null)
                    {
                        var crypto = new SimpleCrypto.PBKDF2();

                        var encryptPass = crypto.Compute(user.Password);

                        var u = new UserModel();

                        u.Email = user.Email;
                        u.Password = encryptPass;
                        u.PasswordSalt = crypto.Salt;
                        db.Users.Add(u);
                        db.SaveChanges();

                        UserRole UR = new UserRole();
                        UR.UserId = u.UserId;

                        Role R = new Role();
                        foreach (var role in db.Roles.ToList())
                        {
                            if (role.RoleName == "Organization")
                            {
                                R = role;
                                break;
                            }
                        }

                        UR.RoleId = R.RoleId;
                        UR.Role = R;

                        db.UserRoles.Add(UR);
                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                }
            }
        }
Exemplo n.º 9
0
        //public void CreateDiveResortOp()
        //{
        //    UserModel user = new UserModel();
        //    user.Email = "*****@*****.**";
        //    user.Password = "******";
        //    using (var db = new DataContext())
        //    {
        //        try
        //        {
        //            if (db.Users.FirstOrDefault(u => u.Email == user.Email) == null)
        //            {
        //                var crypto = new SimpleCrypto.PBKDF2();
        //                var encryptPass = crypto.Compute(user.Password);
        //                var u = new UserModel();
        //                u.Email = user.Email;
        //                u.Password = encryptPass;
        //                u.PasswordSalt = crypto.Salt;
        //                db.Users.Add(u);
        //                db.SaveChanges();
        //                UserRole UR = new UserRole();
        //                UR.UserId = u.UserId;
        //                Role R = new Role();
        //                foreach (var role in db.Roles.ToList())
        //                {
        //                    if (role.RoleName == "ResortOperator")
        //                    {
        //                        R = role;
        //                        break;
        //                    }
        //                }
        //                UR.RoleId = R.RoleId;
        //                UR.Role = R;
        //                db.UserRoles.Add(UR);
        //                db.SaveChanges();
        //            }
        //        }
        //        catch (Exception ex)
        //        {
        //        }
        //    }
        //}
        //public void CreateDiveSiteOp()
        //{
        //    UserModel user = new UserModel();
        //    user.Email = "*****@*****.**";
        //    user.Password = "******";
        //    using (var db = new DataContext())
        //    {
        //        try
        //        {
        //            if (db.Users.FirstOrDefault(u => u.Email == user.Email) == null)
        //            {
        //                var crypto = new SimpleCrypto.PBKDF2();
        //                var encryptPass = crypto.Compute(user.Password);
        //                var u = new UserModel();
        //                u.Email = user.Email;
        //                u.Password = encryptPass;
        //                u.PasswordSalt = crypto.Salt;
        //                db.Users.Add(u);
        //                db.SaveChanges();
        //                UserRole UR = new UserRole();
        //                UR.UserId = u.UserId;
        //                Role R = new Role();
        //                foreach (var role in db.Roles.ToList())
        //                {
        //                    if (role.RoleName == "DiveCenterOperator")
        //                    {
        //                        R = role;
        //                        break;
        //                    }
        //                }
        //                UR.RoleId = R.RoleId;
        //                UR.Role = R;
        //                db.UserRoles.Add(UR);
        //                db.SaveChanges();
        //            }
        //        }
        //        catch (Exception ex)
        //        {
        //        }
        //    }
        //}
        //---------------Testing Purposes--------------------
        public void AddRole()
        {
            DataContext db = new DataContext();
            try
            {
                if (db.Roles.ToList().Count == 0)
                {
                    Role r = new Role();

                    r.RoleName = "Administrator";

                    db.Roles.Add(r);
                    db.SaveChanges();

                    r = new Role();
                    r.RoleName = "Organization";

                    db.Roles.Add(r);
                    db.SaveChanges();

                    //r = new Role();
                    //r.RoleName = "DiveCenterOperator";

                    //db.Roles.Add(r);
                    //db.SaveChanges();

                    //r = new Role();
                    //r.RoleName = "ResortOperator";

                    //db.Roles.Add(r);
                    //db.SaveChanges();

                    r = new Role();
                    r.RoleName = "User";

                    db.Roles.Add(r);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
            }
        }