public void AddUserRole(string name, string description, List <string> events) { using (var session = DataService.OpenSession()) { var dbUserRole = new UserRole() { Name = name, Description = description }; DataService.SaveOrUpdate(session, dbUserRole); foreach (var item in events) { var eventItem = new EventRoleAssociation() { Event = Convert.ToInt32(item), UserRole = dbUserRole }; DataService.SaveOrUpdate(session, eventItem); } session.Flush(); } }
public void UpdateUserRole(string id, string name, string description, List <string> events) { using (var session = DataService.OpenSession()) { var dbUserRole = session.Get <UserRole>(id); dbUserRole.Name = name; dbUserRole.Description = description; DataService.SaveOrUpdate(session, dbUserRole); var eventItems = events.Select(e => Convert.ToInt32(e)).ToList(); var existingEvents = session.CreateCriteria <EventRoleAssociation>() .CreateAlias("UserRole", "role") .Add(Restrictions.Eq("role.Id", id)) .List <EventRoleAssociation>() .ToList(); var eventsToDelete = existingEvents.Where(e => !eventItems.Contains(e.Event)).ToList(); var existinEventIds = existingEvents.Select(e => e.Event).ToList(); var eventsToAdd = eventItems.Where(e => !existinEventIds.Contains(e)).ToList(); eventsToDelete.ForEach(e => { DataService.TryDelete(session, e); }); foreach (var item in eventsToAdd) { var eventItem = new EventRoleAssociation() { Event = item, UserRole = dbUserRole }; DataService.SaveOrUpdate(session, eventItem); } session.Flush(); } }
public override void SetupDefaults() { using (var session = DataService.OpenSession()) { var adminUser = session.CreateCriteria <User>() .Add(Restrictions.Eq("UserName", "Admin")) .UniqueResult <User>(); if (adminUser == null) { adminUser = new User(false) { Email = "*****@*****.**", EmailConfirmed = true, UserName = "******", }; var result = UserManager.CreateAsync(adminUser, "password"); result.Wait(); if (!result.Result.Succeeded) { throw new Exception("Unable to create user: "******"Admin"); } } var adminRole = session.CreateCriteria <UserRole>() .Add(Restrictions.Eq("Name", "Admin")) .UniqueResult <UserRole>(); if (adminRole == null) { adminRole = new UserRole() { Name = "Admin", Description = "Administrator" }; DataService.SaveOrUpdate(session, adminRole); } var adminRoleAssociation = session.CreateCriteria <UserRoleAssociation>() .CreateAlias("User", "user") .CreateAlias("UserRole", "role") .Add(Restrictions.Eq("user.Id", adminUser.Id)) .Add(Restrictions.Eq("role.Id", adminRole.Id)) .UniqueResult <UserRoleAssociation>(); if (adminRoleAssociation == null) { adminRoleAssociation = new UserRoleAssociation() { User = adminUser, UserRole = adminRole }; DataService.SaveOrUpdate(session, adminRoleAssociation); } var menuList1 = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ViewUsers)) .List <Menu>(); if (menuList1.Count == 0) { var menu1 = new Menu() { Event = EventNumber.ViewUsers, Name = "Users", Position = 0 }; DataService.SaveOrUpdate(session, menu1); } var menuList2 = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ViewMenus)) .List <Menu>(); if (menuList2.Count == 0) { var menu2 = new Menu() { Event = EventNumber.ViewMenus, Name = "Menus", Position = 1 }; DataService.SaveOrUpdate(session, menu2); } var userRoleMenu = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ViewUserRoles)) .Add(Restrictions.IsNull("ParentMenu")) .UniqueResult <Menu>(); if (userRoleMenu == null) { userRoleMenu = new Menu() { Event = EventNumber.ViewUserRoles, Name = "User Roles", Position = 2 }; DataService.SaveOrUpdate(session, userRoleMenu); } var allEvents = EventService.EventMenuList.Where(e => e.Value.ActionType != EventType.InputDataView).Select(e => e.Value.GetEventId()) .ToList(); var eras = session.CreateCriteria <EventRoleAssociation>() .CreateAlias("UserRole", "role") .Add(Restrictions.Eq("role.Id", adminRole.Id)) .List <EventRoleAssociation>() .ToList(); if (eras.Count != allEvents.Count) { eras.ForEach(e => { DataService.TryDelete(session, e); }); session.Flush(); foreach (var evt in allEvents) { var era = new EventRoleAssociation() { Event = evt, UserRole = adminRole }; DataService.SaveOrUpdate(session, era); } } session.Flush(); } }
public override void SetupDefaults() { // This code will create an admin user, user role and add all new menu items to the admin user roles, even if you create new ones later. // It is recommended to change your admin email and password asap. var userManager = Container.Resolve <DefaultUserManager>(); using (var session = DataService.OpenSession()) { var adminUser = session.CreateCriteria <User>() .Add(Restrictions.Eq("UserName", "Admin")) .UniqueResult <User>(); if (adminUser == null) { adminUser = new User(false) { Email = "*****@*****.**", EmailConfirmed = true, UserName = "******", }; var result = userManager.CreateAsync(adminUser, "password"); result.Wait(); if (!result.Result.Succeeded) { throw new Exception("Unable to create user: "******"Admin"); } } var adminRole = session.CreateCriteria <UserRole>() .Add(Restrictions.Eq("Name", "Admin")) .UniqueResult <UserRole>(); if (adminRole == null) { adminRole = new UserRole() { Name = "Admin", Description = "Administrator" }; DataService.SaveOrUpdate(session, adminRole); } var adminRoleAssociation = session.CreateCriteria <UserRoleAssociation>() .CreateAlias("User", "user") .CreateAlias("UserRole", "role") .Add(Restrictions.Eq("user.Id", adminUser.Id)) .Add(Restrictions.Eq("role.Id", adminRole.Id)) .UniqueResult <UserRoleAssociation>(); if (adminRoleAssociation == null) { adminRoleAssociation = new UserRoleAssociation() { User = adminUser, UserRole = adminRole }; DataService.SaveOrUpdate(session, adminRoleAssociation); } var systemMenu = session.QueryOver <Menu>().Where(m => m.Name == "System").SingleOrDefault(); if (systemMenu == null) { systemMenu = new Menu() { Name = "System", Position = -1 }; DataService.SaveOrUpdate(session, systemMenu); } var menuList1 = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ViewUsers)) .List <Menu>(); if (menuList1.Count == 0) { var menu1 = new Menu() { Event = EventNumber.ViewUsers, Name = "Users", Position = 0, ParentMenu = systemMenu }; DataService.SaveOrUpdate(session, menu1); } var menuList2 = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ViewMenus)) .List <Menu>(); if (menuList2.Count == 0) { var menu2 = new Menu() { Event = EventNumber.ViewMenus, Name = "Menus", Position = 1, ParentMenu = systemMenu }; DataService.SaveOrUpdate(session, menu2); } var userRoleMenu = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ViewUserRoles)) .UniqueResult <Menu>(); if (userRoleMenu == null) { userRoleMenu = new Menu() { Event = EventNumber.ViewUserRoles, Name = "User Roles", Position = 2, ParentMenu = systemMenu }; DataService.SaveOrUpdate(session, userRoleMenu); } var settingsMenu = session.CreateCriteria <Menu>() .Add(Restrictions.Eq("Event", (int)EventNumber.ModifySystemSettings)) .UniqueResult <Menu>(); if (settingsMenu == null) { settingsMenu = new Menu() { Event = EventNumber.ModifySystemSettings, Name = "Settings", Position = 3, ParentMenu = systemMenu }; DataService.SaveOrUpdate(session, settingsMenu); } var allEvents = EventService.EventList.Where(e => e.Value.ActionType != EventType.InputDataView).Select(e => e.Value.GetEventId()) .ToList(); var eras = session.CreateCriteria <EventRoleAssociation>() .CreateAlias("UserRole", "role") .Add(Restrictions.Eq("role.Id", adminRole.Id)) .List <EventRoleAssociation>() .ToList(); if (eras.Count != allEvents.Count) { eras.ForEach(e => { DataService.TryDelete(session, e); }); session.Flush(); foreach (var evt in allEvents) { var era = new EventRoleAssociation() { Event = evt, UserRole = adminRole }; DataService.SaveOrUpdate(session, era); } } session.Flush(); } }