Пример #1
0
        public void AddNewUser(User user)
        {
            var cfrp = new CodeFirstRoleProvider(Context);

            VerfiyNewUserIsValid(user);

            WebSecurity.CreateUserAndAccount(user.Username, user.Password, user.TimeZone, user.Email);
            var newlyAddedUser = Context.Users.First(x => x.Username == user.Username);

            newlyAddedUser.CreateDate = DateTime.UtcNow;
            UpdateUserValues(user, newlyAddedUser);

            try
            {
                Context.SaveChanges();
            }
            catch (Exception ex)
            {
                Log.Debug(ex);
                throw new Exception("There was an error processing your request.");
            }

            // Add the asigned roles
            if (user.Roles == null || !user.Roles.Any())
            {
                return;
            }

            foreach (var role in user.Roles)
            {
                WebUserUtils.AssignUserToRole(user, role, cfrp);
            }
        }
Пример #2
0
        public ActionResult AddRole(Role role)
        {
            CodeFirstRoleProvider roleProvider = new CodeFirstRoleProvider();

            roleProvider.CreateRole(role.RoleName);
            return(View("AdminTasks"));
        }
Пример #3
0
        public void AddNewUser(User user)
        {
            var cfrp = new CodeFirstRoleProvider(Context);

            VerfiyNewUserIsValid(user);

            WebSecurity.CreateUserAndAccount(user.Username, user.Password, user.TimeZone, user.Email);
            var newlyAddedUser = Context.Users.First(x => x.Username == user.Username);

            newlyAddedUser.CreateDate = DateTime.UtcNow;
            UpdateUserValues(user, newlyAddedUser);

            try
            {
                Context.SaveChanges();
            }
            catch (Exception ex)
            {
                Log.Debug(ex);
                throw new Exception("There was an error processing your request.");
            }

            // Add the asigned roles
            if (user.Roles == null || !user.Roles.Any())
            {
                return;
            }

            foreach (var role in user.Roles)
            {
                WebUserUtils.AssignUserToRole(user, role, cfrp);
            }
        }
Пример #4
0
        public static void AssignUserToRole(User user, Role role, CodeFirstRoleProvider cfrp)
        {
            if (!Roles.IsUserInRole(user.Username, role.RoleName))
            {
                Roles.AddUserToRole(user.Username, role.RoleName);
            }

            cfrp.AddUsersToRoles(new[] { user.Username }, new[] { role.RoleName });
        }
Пример #5
0
        public ActionResult AddEmployee()
        {
            CodeFirstRoleProvider roleProvider = new CodeFirstRoleProvider();
            //SqlParameter appIdParam = new SqlParameter("@ApplicationId","/");
            List <string> roles = roleProvider.GetAllRoles().ToList(); //context.Database.SqlQuery<string>("dbo.aspnet_Roles_GetAllRoles @ApplicationId", appIdParam).ToList<string>();

            ViewBag.Roles = roles;
            ViewBag.Teams = teamRepository.All;
            return(View());
        }
Пример #6
0
        public JsonResult AddUserRole(Role role)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };
            var cfrp = new CodeFirstRoleProvider(Context);

            var success = 0;

            if (cfrp.RoleExists(role.RoleName))
            {
                // bail
                return(result);
            }

            var NewRole = new Role
            {
                RoleId      = Guid.NewGuid(),
                RoleName    = role.RoleName,
                Permissions = new List <Permission>()
            };

            if (role.Permissions != null)
            {
                foreach (var permission in role.Permissions)
                {
                    var existingPermission = Context.Permissions.FirstOrDefault(x => x.PermissionId == permission.PermissionId);
                    if (existingPermission != null)
                    {
                        NewRole.Permissions.Add(existingPermission);
                    }
                }
            }
            Context.Roles.Add(NewRole);
            success = Context.SaveChanges();

            // Add to WebSecurity as well
            Roles.CreateRole(role.RoleName);

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "Role added successfully."
                };
            }
            return(result);
        }
Пример #7
0
        public JsonResult AddUser(User user)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };
            var cfrp = new CodeFirstRoleProvider(Context);

            var success = 0;

            if (!String.IsNullOrEmpty(user.Username))
            {
                // Add to .Net Membership Framework First
                WebSecurity.CreateUserAndAccount(user.Username, user.Password, user.TimeZone, user.Email);

                // Now add additional fields to  CodeFirst User
                var newlyAddedUser = Context.Users.FirstOrDefault(x => x.Username == user.Username);

                newlyAddedUser.CreateDate        = DateTime.UtcNow;
                newlyAddedUser.FirstName         = user.FirstName;
                newlyAddedUser.LastName          = user.LastName;
                newlyAddedUser.Email             = user.Email;
                newlyAddedUser.UserImageLocation = user.UserImageLocation;
                newlyAddedUser.IsApproved        = user.IsApproved;
                success = Context.SaveChanges();

                // Add the asigned roles
                if (user.Roles != null && user.Roles.Any())
                {
                    foreach (var role in user.Roles)
                    {
                        // Add to Membership Framework
                        Roles.AddUserToRole(user.Username, role.RoleName);

                        // Add to CodeFirst as well
                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "User added successfully."
                };
            }
            return(result);
        }
Пример #8
0
        public JsonResult AddUser(User user)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };
            var cfrp = new CodeFirstRoleProvider(Context);

            var success = 0;

            if (!String.IsNullOrEmpty(user.Username))
            {
                // Add to .Net Membership Framework First
                WebSecurity.CreateUserAndAccount(user.Username, user.Password, user.TimeZone, user.Email);

                // Now add additional fields to  CodeFirst User
                var newlyAddedUser = Context.Users.FirstOrDefault(x => x.Username == user.Username);

                newlyAddedUser.CreateDate = DateTime.UtcNow;
                newlyAddedUser.FirstName = user.FirstName;
                newlyAddedUser.LastName = user.LastName;
                newlyAddedUser.Email = user.Email;
                newlyAddedUser.UserImageLocation = user.UserImageLocation;
                success = Context.SaveChanges();

                // Add the asigned roles
                if (user.Roles != null && user.Roles.Any())
                {
                    foreach (var role in user.Roles)
                    {
                        // Add to Membership Framework
                        Roles.AddUserToRole(user.Username, role.RoleName);

                        // Add to CodeFirst as well
                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "User added successfully."
                };
            }
            return result;
        }
Пример #9
0
        public JsonResult AddUserRole(Role role)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };
            var cfrp = new CodeFirstRoleProvider(Context);

            var success = 0;

            if (cfrp.RoleExists(role.RoleName))
            {
                // bail
                return result;
            }

            var NewRole = new Role
            {
                RoleId = Guid.NewGuid(),
                RoleName = role.RoleName,
                Permissions = new List<Permission>()
            };
            if (role.Permissions != null)
            {
                foreach (var permission in role.Permissions)
                {
                    var existingPermission = Context.Permissions.FirstOrDefault(x => x.PermissionId == permission.PermissionId);
                    if (existingPermission != null)
                    {
                        NewRole.Permissions.Add(existingPermission);
                    }
                }
            }
            Context.Roles.Add(NewRole);
            success = Context.SaveChanges();

            // Add to WebSecurity as well
            Roles.CreateRole(role.RoleName);

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "Role added successfully."
                };
            }
            return result;
        }
Пример #10
0
        public void UpdateUser(User user)
        {
            if (String.IsNullOrEmpty(user.UserId.ToString()))
            {
                throw new Exception("There was an error processing your request.");
            }

            var cfrp = new CodeFirstRoleProvider(Context);
            var editUser = Context.Users.FirstOrDefault(x => x.UserId == user.UserId);
            var currentUsername = UserUtils.CurrentMembershipUsername();

            VerifyChangeIsValid(user, editUser, currentUsername);
            UpdateUserValues(user, editUser);

            if (user.Roles == null)
            {
                throw new Exception("There was an error processing your request.");
            }

            try
            {

                foreach (var role in editUser.Roles.ToList())
                {
                    RemoveUserFromFole(user, role, cfrp);
                }

                foreach (var role in user.Roles)
                {
                    AssignUserToRole(user, role, cfrp);
                }

                Context.SaveChanges();

                if (user.Username != currentUsername)
                {
                    FormsAuthentication.SignOut();
                    FormsAuthentication.SetAuthCookie(user.Username, false);
                }
            }
            catch (Exception e)
            {
                Log.Debug(e);
                throw new Exception("There was an error processing your request.");
            }
        }
Пример #11
0
        public void UpdateUser(User user)
        {
            if (String.IsNullOrEmpty(user.UserId.ToString()))
            {
                throw new Exception("There was an error processing your request.");
            }

            var cfrp            = new CodeFirstRoleProvider(Context);
            var editUser        = Context.Users.FirstOrDefault(x => x.UserId == user.UserId);
            var currentUsername = UserUtils.CurrentMembershipUsername();

            VerifyChangeIsValid(user, editUser, currentUsername);
            UpdateUserValues(user, editUser);

            if (user.Roles == null)
            {
                throw new Exception("There was an error processing your request.");
            }

            try
            {
                foreach (var role in editUser.Roles.ToList())
                {
                    RemoveUserFromFole(user, role, cfrp);
                }

                foreach (var role in user.Roles)
                {
                    AssignUserToRole(user, role, cfrp);
                }

                Context.SaveChanges();

                if (user.Username != currentUsername)
                {
                    FormsAuthentication.SignOut();
                    FormsAuthentication.SetAuthCookie(user.Username, false);
                }
            }
            catch (Exception e)
            {
                Log.Debug(e);
                throw new Exception("There was an error processing your request.");
            }
        }
Пример #12
0
        public ActionResult AddEmployee(Employee employee, FormCollection col)
        {
            Employee emp = new Employee();

            emp.TeamID          = Convert.ToInt32(col["EmployeeTeam"]);
            emp.EmployeeRole    = col["roles"];
            emp.EmployeeContact = employee.EmployeeContact;
            employeeRepository.InsertOrUpdate(emp);
            employeeRepository.Save();
            string[] roles    = { emp.EmployeeRole };
            string[] username = { employee.EmployeeContact.ContactEmail };
            MembershipCreateStatus      createStatus;
            CodeFirstMembershipProvider provider = new CodeFirstMembershipProvider();

            provider.CreateAccount(username[0], "KStart123", employee.EmployeeContact.ContactEmail, out createStatus);
            CodeFirstRoleProvider roleProvider = new CodeFirstRoleProvider();

            roleProvider.AddUsersToRoles(username, roles);

            return(View("AdminTasks"));
        }
Пример #13
0
        public ActionResult ClientRegister(ClientRegister form)
        {
            ClientRegister details = new ClientRegister();

            details = form;
            int enqID = Convert.ToInt32(TempData["EnquiryIdClient"]);
            //RegisterModel regMod = new RegisterModel();
            //AccountController accController = new AccountController();
            Enquiry enq = new Enquiry();

            enq = enquiryRepository.Find(enqID);
            //regMod.UserName = enq.Contact.ContactEmail;
            string Password = PasswordGeneration(enq.Contact.ContactName, enq.Contact.MobileNumber);
            //regMod.Email = enq.Contact.ContactEmail;
            //accController.Register(regMod);
            MembershipCreateStatus      createStatus;
            CodeFirstMembershipProvider provider = new CodeFirstMembershipProvider();

            provider.CreateAccount(enq.Contact.ContactEmail, Password, enq.Contact.ContactEmail, out createStatus);
            CodeFirstRoleProvider roleProvider = new CodeFirstRoleProvider();

            if (createStatus == MembershipCreateStatus.Success)
            {
                if (!roleProvider.RoleExists("Client"))
                {
                    roleProvider.CreateRole("Client");
                }

                string[] roles = { "Client" };
                string[] users = { enq.Contact.ContactEmail.ToString() };
                roleProvider.AddUsersToRoles(users, roles);
            }
            details.EnquiryID = Convert.ToInt32(TempData["EnquiryIdClient"]);
            details.ContactID = enq.ContactID; // Please see this--Pankaj
            clientRegisterRepository.InsertOrUpdate(details);
            clientRegisterRepository.Save();
            return(RedirectToAction("Details", new { id = details.EnquiryID }));
        }
Пример #14
0
        public static bool RoleExist(string role)
        {
            CodeFirstRoleProvider rp = new CodeFirstRoleProvider();

            return(rp.RoleExists(role));
        }
Пример #15
0
        public static string[] GetUsersInRole(string role)
        {
            CodeFirstRoleProvider rp = new CodeFirstRoleProvider();

            return(rp.GetUsersInRole(role));
        }
Пример #16
0
        public static void AddUsersToRoles(string[] usernames, string[] rolenames)
        {
            CodeFirstRoleProvider rp = new CodeFirstRoleProvider();

            rp.AddUsersToRoles(usernames, rolenames);
        }
Пример #17
0
        public static void RemoveUsersFromRoles(string[] usernames, string[] rolenames)
        {
            CodeFirstRoleProvider rp = new CodeFirstRoleProvider();

            rp.RemoveUsersFromRoles(usernames, rolenames);
        }
Пример #18
0
        public static string[] GetAllRoles()
        {
            CodeFirstRoleProvider rp = new CodeFirstRoleProvider();

            return(rp.GetAllRoles());
        }
Пример #19
0
        public JsonResult AddUserRole(Role role)
        {
            var result = new JsonResult();
            var cfrp = new CodeFirstRoleProvider();

            if (cfrp.RoleExists(role.RoleName))
            {
                // bail
                return result;
            }

            using (var context = new DataContext())
            {
                var NewRole = new Role
                {
                    RoleId = Guid.NewGuid(),
                    RoleName = role.RoleName,
                    Permissions = role.Permissions
                };
                context.Roles.Add(NewRole);
                context.SaveChanges();
            }

            // Add to WebSecurity as well
            Roles.CreateRole(role.RoleName);

            return result;
        }
Пример #20
0
        public ActionResult ModifyUsersInRole(List<Guid> RemoveUsers, List<Guid> AddUsers, Guid RoleID)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };

            var cfrp = new CodeFirstRoleProvider(Context);

            var role = Context.Roles.FirstOrDefault(x => x.RoleId == RoleID);

            if (role == null) { return result; }

            result.Data = new
            {
                success = true,
                message = "Users updated."
            };

            // Remove Users
            if (RemoveUsers != null && RemoveUsers.Any())
            {
                foreach (var gid in RemoveUsers)
                {
                    var user = Context.Users.Where(x => x.UserId == gid).FirstOrDefault();

                    if (user != null)
                    {
                        Roles.RemoveUserFromRole(user.Username, role.RoleName);
                        cfrp.RemoveUsersFromRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            // Add Users
            if (AddUsers != null && AddUsers.Any())
            {
                foreach (var gid in AddUsers)
                {
                    var user = Context.Users.Where(x => x.UserId == gid).FirstOrDefault();

                    if (user != null)
                    {
                        // Add to Membership Framework
                        if (!Roles.IsUserInRole(user.Username, role.RoleName))
                        {
                            Roles.AddUserToRole(user.Username, role.RoleName);
                        }

                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            return result;
        }
Пример #21
0
        protected override void Seed(BlogUnitOfWork context)
        {
            //Roles
            CodeFirstRoleProvider provider = new CodeFirstRoleProvider();

            provider.CreateRole("admin");
            provider.CreateRole("user");
            provider.CreateRole("premium");

            // Create indexes
            context.Database.ExecuteSqlCommand("CREATE INDEX IDX_Posts_Code ON Posts (Code);");
            context.Database.ExecuteSqlCommand("CREATE INDEX IDX_Posts_DateCreated ON Posts (DateCreated DESC);");
            context.Database.ExecuteSqlCommand("CREATE INDEX IDX_Subscriptions_SubscriberEmail ON Subscriptions (SubscriberEmail);");

            //Resources
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Admin_Role", Value = "admin"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Categories_Number_of_Categories_per_Page", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Comments_Number_of_Comments_per_Page", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Copyright", Value = "©MyCopyright 2XXX"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Dark_Background_Themes", Value = ""
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Dark_Header_Themes", Value = "Aristo;Rocket;Cobalt"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Default_Theme", Value = "Cobalt"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Directories_Temp_Data", Value = "~/Content/Files/Temp_Data/"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Email_Password", Value = "xxxxxx"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Email_UserName", Value = "*****@*****.**"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Google_Analytics_Track_Code", Value = "xx-xxxxxxxx-x"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Index_Number_of_Posts", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Logo", Value = "~/Content/Icons/logo.jpg"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "No_Image", Value = "~/Content/Icons/no_image.jpg"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Posts_Number_of_Posts_per_Page", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Premium_Role", Value = "premium"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Recaptcha_Private_Key_Http", Value = "xxxx"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Recaptcha_Public_Key_Http", Value = "xxxx"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Akismet_API_key", Value = ""
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Roles_Number_of_Roles_per_Page", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "SearchImages_Number_of_Images_per_Page", Value = "15"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "SearchVideos_Number_of_Videos_per_Page", Value = "12"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "SiteTitle", Value = "MySiteName.com"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "SiteUrl", Value = "http://www.MySiteDomain.com"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Smtp_Port", Value = "25"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Smtp_Server", Value = "smtp.live.com"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Email_SSL", Value = "false"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Send_Mail_When_Comment_Received", Value = "false"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Tags_Number_of_Tags_per_Page", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "ThumbnailHeight", Value = "150"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "ThumbnailWidth", Value = "200"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Users_Number_of_Users_per_Page", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Video_Container_Height", Value = "160"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Video_Container_Width", Value = "250"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Posts_HomeIndexPostsPerPage", Value = "10"
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Twitter_User", Value = ""
            });
            context.Set <BlogResource>().Add(new BlogResource {
                Name = "Twitter_Search_Query", Value = ""
            });
            context.SaveChanges();
        }
Пример #22
0
        public JsonResult ModifyUser(User user)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };

            var success = 0;

            if (!String.IsNullOrEmpty(user.UserId.ToString()))
            {
                var cfrp = new CodeFirstRoleProvider(Context);
                var editUser = Context.Users.FirstOrDefault(x => x.UserId == user.UserId);

                editUser.Username = user.Username;
                editUser.FirstName = user.FirstName;
                editUser.LastName = user.LastName;
                editUser.Email = user.Email;
                editUser.UserImageLocation = user.UserImageLocation;
                editUser.IsLockedOut = user.IsLockedOut;

                if (user.Roles != null)
                {
                    // Modify the user roles
                    // First delete existing roles
                    foreach (var role in editUser.Roles.ToList())
                    {
                        // get current role for comparison
                        var rolesList = user.Roles.Select(a => a.RoleName).ToList();
                        var userRoles = Context.Roles.Where(x => rolesList.Contains(role.RoleName)).ToList();
                        var foundRole = !userRoles.Contains(role);

                        // Only remove roles if it's not in the new set
                        if (foundRole)
                        {
                            Roles.RemoveUserFromRole(user.Username, role.RoleName);
                            cfrp.RemoveUsersFromRoles(new string[] {user.Username}, new string[] {role.RoleName});
                        }
                    }

                    // Add the asigned roles
                    foreach (var role in user.Roles)
                    {
                        // Add to Membership Framework
                        if (!Roles.IsUserInRole(user.Username, role.RoleName))
                        {
                            Roles.AddUserToRole(user.Username, role.RoleName);
                        }

                        // Add to CodeFirst as well
                        cfrp.AddUsersToRoles(new string[] {user.Username}, new string[] {role.RoleName});
                    }

                    success = Context.SaveChanges();
                }
            }

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "Changes saved successfully."
                };
            }
            return result;
        }
Пример #23
0
        public JsonResult ModifyUser(User user)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };

            var success = 0;

            if (!String.IsNullOrEmpty(user.UserId.ToString()))
            {
                var cfrp     = new CodeFirstRoleProvider(Context);
                var editUser = Context.Users.FirstOrDefault(x => x.UserId == user.UserId);

                editUser.Username          = user.Username;
                editUser.FirstName         = user.FirstName;
                editUser.LastName          = user.LastName;
                editUser.Email             = user.Email;
                editUser.UserImageLocation = user.UserImageLocation;
                editUser.IsLockedOut       = user.IsLockedOut;

                if (user.Roles != null)
                {
                    // Modify the user roles
                    // First delete existing roles
                    foreach (var role in editUser.Roles)
                    {
                        // get current role for comparison
                        var rolesList = user.Roles.Select(a => a.RoleName).ToList();
                        var userRoles = Context.Roles.Where(x => rolesList.Contains(role.RoleName)).ToList();
                        var foundRole = !userRoles.Contains(role);

                        // Only remove roles if it's not in the new set
                        if (foundRole)
                        {
                            Roles.RemoveUserFromRole(user.Username, role.RoleName);
                            cfrp.RemoveUsersFromRoles(new string[] { user.Username }, new string[] { role.RoleName });
                        }
                    }


                    // Add the asigned roles
                    foreach (var role in user.Roles)
                    {
                        // Add to Membership Framework
                        if (!Roles.IsUserInRole(user.Username, role.RoleName))
                        {
                            Roles.AddUserToRole(user.Username, role.RoleName);
                        }

                        // Add to CodeFirst as well
                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }

                    success = Context.SaveChanges();
                }
            }

            if (success > 0)
            {
                result.Data = new
                {
                    success = true,
                    message = "Changes saved successfully."
                };
            }
            return(result);
        }
Пример #24
0
        public JsonResult ModifyUser(User user)
        {
            var result = new JsonResult();

            if (!String.IsNullOrEmpty(user.UserId.ToString()))
            {
                using (var context = new DataContext())
                {
                    var cfrp = new CodeFirstRoleProvider();
                    var editUser = context.Users.FirstOrDefault(x => x.UserId == user.UserId);

                    editUser.Username = user.Username;
                    editUser.UserImageLocation = user.UserImageLocation;
                    editUser.IsLockedOut = user.IsLockedOut;

                    // Modify the user roles
                    // First delete existing roles
                    foreach (var role in editUser.Roles)
                    {
                        // Only remove roles if it's not in the new set
                        if (user.Roles != null && !user.Roles.Contains(role))
                        {
                            Roles.RemoveUserFromRole(user.Username, role.RoleName);
                            cfrp.RemoveUsersFromRoles(new string[] { user.Username }, new string[] { role.RoleName });
                        }
                    }

                    // Add the asigned roles
                    foreach (var role in user.Roles)
                    {
                        // Add to Membership Framework
                        if (!Roles.IsUserInRole(user.Username, role.RoleName))
                        {
                            Roles.AddUserToRole(user.Username, role.RoleName);
                        }

                        // Add to CodeFirst as well
                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }

                    context.SaveChanges();
                }
            }

            return result;
        }
 private string GetUserRole(string userName)
 {
     string userRole = string.Empty;
     if (!string.IsNullOrEmpty(userName))
     {
         userRole = new CodeFirstRoleProvider().GetRolesForUser(userName).FirstOrDefault();
     }
     return userRole;
 }
Пример #26
0
        public ActionResult ModifyUsersInRole(List<Guid> RemoveUsers, List<Guid> AddUsers, Guid RoleID)
        {
            var result = new JsonResult();

            var cfrp = new CodeFirstRoleProvider();

            using (var context = new DataContext())
            {
                var role = context.Roles.FirstOrDefault(x => x.RoleId == RoleID);

                if (role == null) { return result; }

                // Remove Users
                if (RemoveUsers != null && RemoveUsers.Any())
                {
                    foreach (var gid in RemoveUsers)
                    {
                        var user = context.Users.Where(x => x.UserId == gid).FirstOrDefault();

                        if (user != null)
                        {
                            Roles.RemoveUserFromRole(user.Username, role.RoleName);
                            cfrp.RemoveUsersFromRoles(new string[] { user.Username }, new string[] { role.RoleName });
                        }
                    }
                }

                // Add Users
                if (AddUsers != null && AddUsers.Any())
                {
                    foreach (var gid in AddUsers)
                    {
                        var user = context.Users.Where(x => x.UserId == gid).FirstOrDefault();

                        if (user != null)
                        {
                            // Add to Membership Framework
                            if (!Roles.IsUserInRole(user.Username, role.RoleName))
                            {
                                Roles.AddUserToRole(user.Username, role.RoleName);
                            }

                            cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                        }
                    }
                }

            }

            return result;
        }
Пример #27
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    var cfrp = new CodeFirstRoleProvider();

                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                    WebSecurity.Login(model.UserName, model.Password);

                    // By default add the user to the admin group, unless user has specified another group in the settings area
                    string defaultRole = "Administrators";
                    using (var context = new DataContext())
                    {
                        var siteSettings = context.SiteSettings.FirstOrDefault();
                        if (siteSettings != null && !String.IsNullOrEmpty(siteSettings.DefaultUserRole))
                        {
                            defaultRole = siteSettings.DefaultUserRole;
                        }
                    }

                    // Now check if user entered a registration Code.
                    // Registration Codes allow users to be inserted into a non-default role
                    if (!String.IsNullOrEmpty(model.RegistrationCode))
                    {
                        // Check for a Role that has this registration code
                        using (var context = new DataContext())
                        {
                            var role = context.Roles.FirstOrDefault(x => x.RegistrationCode == model.RegistrationCode);
                            if (role != null)
                            {
                                defaultRole = role.RoleName;
                            }
                        }
                    }

                    // Make sure roll exists
                    if (!Roles.RoleExists(defaultRole))
                    {
                        Roles.CreateRole(defaultRole);
                    }

                    // Double Check CodeFirst Provider
                    if (!cfrp.RoleExists(defaultRole))
                    {
                        cfrp.CreateRole(defaultRole);
                    }

                    // Sanity Check
                    if (!Roles.IsUserInRole(model.UserName, defaultRole))
                    {
                        Roles.AddUserToRole(model.UserName, defaultRole);
                    }
                    // Add to CodeFirst as well
                    cfrp.AddUsersToRoles(new string[] { model.UserName }, new string[] { defaultRole });

                    return RedirectToAction("Index", "Admin");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
Пример #28
0
        public static void AssignUserToRole(User user, Role role, CodeFirstRoleProvider cfrp)
        {
            if (!Roles.IsUserInRole(user.Username, role.RoleName))
            {
                Roles.AddUserToRole(user.Username, role.RoleName);
            }

            cfrp.AddUsersToRoles(new[] { user.Username }, new[] { role.RoleName });
        }
Пример #29
0
        public ActionResult ModifyUsersInRole(List <Guid> RemoveUsers, List <Guid> AddUsers, Guid RoleID)
        {
            var result = new JsonResult()
            {
                Data = new
                {
                    success = false,
                    message = "There was an error processing your request."
                }
            };

            var cfrp = new CodeFirstRoleProvider(Context);

            var role = Context.Roles.FirstOrDefault(x => x.RoleId == RoleID);

            if (role == null)
            {
                return(result);
            }

            result.Data = new
            {
                success = true,
                message = "Users updated."
            };

            // Remove Users
            if (RemoveUsers != null && RemoveUsers.Any())
            {
                foreach (var gid in RemoveUsers)
                {
                    var user = Context.Users.Where(x => x.UserId == gid).FirstOrDefault();

                    if (user != null)
                    {
                        Roles.RemoveUserFromRole(user.Username, role.RoleName);
                        cfrp.RemoveUsersFromRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            // Add Users
            if (AddUsers != null && AddUsers.Any())
            {
                foreach (var gid in AddUsers)
                {
                    var user = Context.Users.Where(x => x.UserId == gid).FirstOrDefault();

                    if (user != null)
                    {
                        // Add to Membership Framework
                        if (!Roles.IsUserInRole(user.Username, role.RoleName))
                        {
                            Roles.AddUserToRole(user.Username, role.RoleName);
                        }

                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            return(result);
        }
Пример #30
0
        public static bool IsUserInRole(string user, string role)
        {
            CodeFirstRoleProvider rp = new CodeFirstRoleProvider();

            return(rp.IsUserInRole(user, role));
        }
        // PUT api/<controller>/5
        public HttpResponseMessage Put(string userName, MembershipViewModel membershipViewModel)
        {
            if (!IsAuthorize("write"))
            {
                return Request.CreateResponse(HttpStatusCode.Unauthorized);
            }
            User user = _facade.GetUserByUserName(userName);
            if (user != null)
            {
                if (ModelState.IsValid && userName == membershipViewModel.Username)
                {

                    var codeFirstProvider = new CodeFirstRoleProvider();
                    _facade.RemoveUsersFromRoles(new string[] { user.Username }, user.Roles.Select(x=>x.RoleName).ToArray());
                    if (!codeFirstProvider.IsUserInRole(user.Username, membershipViewModel.role))
                    {
                        _facade.AddUsersToRoles(new string[] { user.Username }, new string[] { membershipViewModel.role });
                    }
                    if (!String.IsNullOrEmpty(membershipViewModel.password))
                    {
                    user.Password = WebSecurity.GetHash(membershipViewModel.password);
                    user.LastPasswordChangedDate = DateTime.Now;
                    }
                    user.Email = membershipViewModel.email;

                    if(_facade.UpdateUser(user))
                        return Request.CreateResponse(HttpStatusCode.OK);
                    else
                        return Request.CreateResponse(HttpStatusCode.NotFound);
                }
                else
                {
                    return Request.CreateResponse(HttpStatusCode.BadRequest);
                }
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }
Пример #32
0
        public JsonResult AddUser(User user)
        {
            var result = new JsonResult();
            var cfrp = new CodeFirstRoleProvider();

            if (!String.IsNullOrEmpty(user.Username))
            {
                // Add to .Net Membership Framework First
                WebSecurity.CreateUserAndAccount(user.Username, user.Password);

                // Now add additional fields to  CodeFirst User
                using (var context = new DataContext())
                {
                    var newlyAddedUser = context.Users.Where(x => x.Username == user.Username).FirstOrDefault();

                    newlyAddedUser.CreateDate = DateTime.Now;
                    newlyAddedUser.UserImageLocation = user.UserImageLocation;
                    context.SaveChanges();

                    // Add the asigned roles
                    foreach (var role in user.Roles)
                    {
                        // Add to Membership Framework
                        Roles.AddUserToRole(user.Username, role.RoleName);

                        // Add to CodeFirst as well
                        cfrp.AddUsersToRoles(new string[] { user.Username }, new string[] { role.RoleName });
                    }
                }
            }

            return result;
        }