public RoleAddedToMemberEvent(GroupId groupId, UserId userId, MemberId memberId, RoleId roleId,
                               RoleName roleName, RolePriority rolePriority)
 {
     GroupId      = groupId;
     UserId       = userId;
     MemberId     = memberId;
     RoleId       = roleId;
     RoleName     = roleName;
     RolePriority = rolePriority;
 }
Beispiel #2
0
        public async Task <bool> UpdateRole(string id, string role)
        {
            var user = await _userManager.FindByIdAsync(id);

            var higherRoles = RolePriority.HigherRoles(role);
            var lowerRoles  = RolePriority.LowerRoles(role);
            await _userManager.AddToRolesAsync(user, lowerRoles);

            await _userManager.RemoveFromRolesAsync(user, higherRoles);

            await _context.SaveChangesAsync();

            return(true);
        }
Beispiel #3
0
        protected async Task Save(User user, string role)
        {
            var succeeded = await MegaService.HttpClient.PostJsonAsync <bool>("/api/Identity/UpdateRole", JsonConvert.SerializeObject(new
            {
                user.Id,
                Role = role
            }));

            if (succeeded)
            {
                MegaService.Toastr.Success("Successfully updated.");
                var lowerRoles = RolePriority.LowerRoles(role);
                user.Roles = lowerRoles;
            }
            else
            {
                MegaService.Toastr.Warning("Update failed. Please try again");
            }
            StateHasChanged();
        }
Beispiel #4
0
        public async Task <ICollection <User> > SearchUsers(string phrase, string role, int sortType, int page, int pageSize)
        {
            var helper = new IdentitySearchHelper(_context, _userManager);
            var col    = await helper
                         .Like(phrase)
                         .SortBy((Consts.SortType)sortType)
                         .Get();

            if (!string.IsNullOrWhiteSpace(role))
            {
                ICollection <User> newCol = new List <User>();
                col.ForEach(async u =>
                {
                    if (await _userManager.IsInRoleAsync(u, role))
                    {
                        newCol.Add(u);
                    }
                });
                col = newCol;
            }

            foreach (var u in col)
            {
                u.Roles = await _userManager.GetRolesAsync(u);
            }

            if (sortType == (int)Consts.SortType.Role)
            {
                col = col.OrderBy(u => RolePriority.Priority(u.MainRole)).ToList();
            }

            if (page > -1 && pageSize > -1)
            {
                col = col.Skip((page - 1) * pageSize).Take(pageSize).ToList();
            }

            return(col);
        }
Beispiel #5
0
 public Role(RoleId id, RoleName name, RolePriority priority, Permissions permissions) : base(id)
 {
     Name        = name;
     Priority    = priority;
     Permissions = permissions;
 }
 internal static dynamic MakeJsonRole(EntityAbs<Role> rabs, RolePriority admMax)
 {
     return new
     {
         id = rabs.DataBehind.ID,
         name = rabs.DataBehind.RoleName,
         path = Utils.GetHtmlRolePath(rabs.DataBehind.DistinctString),
         priority = rabs.DataBehind.RolePriority,
         hasParents = rabs.ParentExists,
         hasChilds = rabs.ChildExists,
         childsLoaded = rabs.IsChildsLoaded,
         pid = rabs.DataBehind.ParentID == null ? new Nullable<int>() : rabs.DataBehind.ParentID,
         op = admMax.Major >= rabs.DataBehind.RolePriority
     };
 }