public void Seed(IContext context) { var userId = (from cm in context.EntitySet <User>() where cm.UserName == "admin" select cm.UserId).FirstOrDefault(); var groupId = (from cm in context.EntitySet <UserGroup>() where cm.Name == "Administrator" select cm.UserGroupId).FirstOrDefault(); var existingId = from cm in context.EntitySet <UserGroupMap>() where cm.UserId.Value == userId & cm.UserGroupId.Value == groupId select cm.UserId; if (!existingId.Any()) { var record = new UserGroupMap { UserId = userId, UserGroupId = groupId, CreatedBy = "System", }; context.EntitySet <UserGroupMap>().AddOrUpdate(record); } context.SaveChanges(); }
public bool HasPrivilege(params string[] privileges) { var @value = true; foreach (var privilegeId in privileges) { var hasPrivilege = UserPrivilegeMap != null && UserPrivilegeMap.Any(e => e.PrivilegeId == privilegeId); if (!hasPrivilege) { hasPrivilege = UserRoleMap != null && UserRoleMap.Any(e => e.Role.RolePrivilegeMap != null && e.Role.RolePrivilegeMap.Any(e2 => e2.PrivilegeId == privilegeId)); if (!hasPrivilege) { hasPrivilege = UserGroupMap != null && UserGroupMap.Any(e => e.Group.GroupPrivilegeMap != null && e.Group.GroupPrivilegeMap.Any(e2 => e2.PrivilegeId == privilegeId)); if (!hasPrivilege) { hasPrivilege = UserGroupMap != null && UserGroupMap.Any(e => e.Group.GroupRoleMap != null && e.Group.GroupRoleMap.Any(e2 => e2.Role.RolePrivilegeMap != null && e2.Role.RolePrivilegeMap.Any(e3 => e3.PrivilegeId == privilegeId))); if (!hasPrivilege) { @value = false; break; } } } } } return(@value); }
public IReadOnlyCollection <Group> GetGroups() { IReadOnlyCollection <Group> @value = null; if (UserGroupMap != null) { @value = UserGroupMap.Select(e => e.Group).ToList(); } return(@value); }
public IReadOnlyCollection <User> GetUsers() { IReadOnlyCollection <User> @value = null; if (UserGroupMap != null) { @value = UserGroupMap.Select(e => e.User).ToList(); } return(@value); }
public IReadOnlyCollection <(Privilege, bool)> GetGroupsPrivileges() { IReadOnlyCollection <(Privilege, bool)> @value = null; if (UserGroupMap != null) { @value = UserGroupMap .SelectMany(e => e.Group.GroupRoleMap).SelectMany(e => e.Role.RolePrivilegeMap).Select(e => (e.Privilege, e.IsAllowed)).Distinct().ToList(); } return(@value); }
public async Task <int> SaveStatus(GroupDTO _Dto, Guid Id, int EntityState) { UserGroupMap objUserGroupMap = new UserGroupMap(); bool IsUserGroupExist = await db.UserGroupMaps.Where(o => o.GroupId == Id).AnyAsync(); if (!IsUserGroupExist) { GroupMaster groupMaster = new GroupMaster(); groupMaster = await db.GroupMasters.Where(o => o.Id == Id).FirstOrDefaultAsync(); if (groupMaster.StatusCode == EMPConstants.InActive) { groupMaster.StatusCode = EMPConstants.Active; } else if (groupMaster.StatusCode == EMPConstants.Active) { groupMaster.StatusCode = EMPConstants.InActive; } if (EntityState == (int)System.Data.Entity.EntityState.Modified) { groupMaster.LastUpdatedDate = DateTime.Now; groupMaster.LastUpdatedBy = _Dto.UserId; db.Entry(groupMaster).State = System.Data.Entity.EntityState.Modified; } try { await db.SaveChangesAsync(); db.Dispose(); return((int)HttpStatusCode.OK); } catch (DbUpdateConcurrencyException) { return((int)HttpStatusCode.InternalServerError); } } else { return((int)HttpStatusCode.NotModified); } }
public ActionResult AddUsers(string userGroupGuid, string userNames) { return(ActionUtils.Json(() => { var userGroup = m_dbAdapter.UserGroup.GetByGuid(userGroupGuid); CommUtils.Assert(IsCurrentUser(userGroup.Owner), "当前用户[{0}]不是[{1}]的创建者", CurrentUserName, userGroup.Name); var userNameList = CommUtils.Split(userNames); foreach (var userName in userNameList) { var userGroupMap = new UserGroupMap { UserGroupGuid = userGroupGuid, UserName = userName }; m_dbAdapter.UserGroupMap.New(userGroupMap); } return ActionUtils.Success(1); })); }
public async Task<int> SaveUser(UserDetailDTO _user, Guid Id, int EntityState) { UserMaster usermaster = new UserMaster(); string Password = ""; if (_user != null) { if (EntityState == (int)System.Data.Entity.EntityState.Modified) { var Existuser = db.UserMasters.Where(o => o.Id != Id && o.UserName == _user.UserName).Any(); if (Existuser) return -1; usermaster = db.UserMasters.Where(o => o.Id == Id).FirstOrDefault(); } else { var Existuser = db.UserMasters.Where(o => o.UserName == _user.UserName).Any(); if (Existuser) return -1; Password = GetRandomPassword(); usermaster.Password = PasswordManager.CryptText(Password); //"admin1" } //usermaster.Id = ""; usermaster.Id = Id; usermaster.EntityId = _user.EntityId; usermaster.CustomerId = _user.CustomerId; usermaster.FirstName = _user.FirstName; usermaster.LastName = _user.LastName; // usermaster.MiddleName = _user.MiddleName; usermaster.UserName = _user.UserName; usermaster.EmailAddress = _user.EmailAddress; usermaster.IsEmailConfirmed = _user.IsEmailConfirmed; usermaster.EmailConfirmationCode = _user.EmailConfirmationCode; usermaster.PasswordResetCode = _user.PasswordResetCode; usermaster.LastLoginDate = _user.LastLoginDate; usermaster.IsActive = true; usermaster.IsActiveDate = DateTime.Now; usermaster.StatusCode = EMPConstants.Active; if (EntityState == (int)System.Data.Entity.EntityState.Modified) { usermaster.CreatedBy = _user.UserId; usermaster.CreatedDate = DateTime.Now; usermaster.LastUpdatedDate = DateTime.Now; usermaster.LastUpdatedBy = _user.UserId; db.Entry(usermaster).State = System.Data.Entity.EntityState.Modified; } else { usermaster.LastUpdatedDate = DateTime.Now; usermaster.LastUpdatedBy = _user.UserId; db.UserMasters.Add(usermaster); EmailNotification _email = new EmailNotification(); _email.CreatedBy = _user.UserId; _email.CreatedDate = DateTime.Now; _email.EmailCC = ""; _email.EmailContent = ""; _email.EmailSubject = EMPConstants.NewUserMailSubject; _email.EmailTo = _user.EmailAddress; _email.EmailType = (int)EMPConstants.EmailTypes.NewAdminUser; _email.IsSent = false; _email.Parameters = _user.UserName + "$|$" + Password; db.EmailNotifications.Add(_email); } // User Group Mapping Saving UserGroupMap usergroup = new UserGroupMap(); UserGroupMapDTO UserGroupMapDto = await _UserGroupService.GetByUserId(usermaster.Id); bool IsNewGroup = true; if (UserGroupMapDto != null) { if (UserGroupMapDto.Id != Guid.Empty) { IsNewGroup = false; usergroup.Id = UserGroupMapDto.Id; usergroup.GroupId = _user.Groups.Id; usergroup.UserId = usermaster.Id; usergroup.StatusCode = EMPConstants.Active; db.Entry(usergroup).State = System.Data.Entity.EntityState.Modified; } } if (IsNewGroup) { usergroup.Id = Guid.NewGuid(); usergroup.GroupId = _user.Groups.Id; usergroup.UserId = usermaster.Id; usergroup.StatusCode = EMPConstants.Active; db.UserGroupMaps.Add(usergroup); } if (_user.Roles.ToList().Count > 0) { if (EntityState == (int)System.Data.Entity.EntityState.Modified) { var UserRole1 = db.UserRolesMaps.Where(o => o.UserId == _user.Id).ToList(); if (UserRole1.Count() > 0) db.UserRolesMaps.RemoveRange(UserRole1); } List<UserRolesMap> _UserRolesMapList = new List<UserRolesMap>(); foreach (RoleDTO Role in _user.Roles) { UserRolesMap _UserRolesMap = new UserRolesMap(); _UserRolesMap.Id = Guid.NewGuid(); _UserRolesMap.UserId = usermaster.Id; _UserRolesMap.RoleId = Role.Id; _UserRolesMap.StatusCode = EMPConstants.Active; _UserRolesMapList.Add(_UserRolesMap); } db.UserRolesMaps.AddRange(_UserRolesMapList); } } try { await db.SaveChangesAsync(); db.Dispose(); return 1; } catch (DbUpdateConcurrencyException) { return 0; } }