Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public IReadOnlyCollection <Group> GetGroups()
        {
            IReadOnlyCollection <Group> @value = null;

            if (UserGroupMap != null)
            {
                @value = UserGroupMap.Select(e => e.Group).ToList();
            }
            return(@value);
        }
Ejemplo n.º 4
0
        public IReadOnlyCollection <User> GetUsers()
        {
            IReadOnlyCollection <User> @value = null;

            if (UserGroupMap != null)
            {
                @value = UserGroupMap.Select(e => e.User).ToList();
            }
            return(@value);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
            }));
        }
Ejemplo n.º 8
0
        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;
            }
        }