Ejemplo n.º 1
0
        private MembersRowsViewModel GetUsersRowsViewModel(Guid?groupId)
        {
            var model = new MembersRowsViewModel
            {
                SelectedColumns = UsersPresentationHelper.GetProfileColumns(),
                CurrentMember   = _intranetMemberService.GetCurrentMember().ToViewModel(),
            };

            model.IsCurrentMemberGroupAdmin = groupId.HasValue && _groupMemberService
                                              .IsMemberAdminOfGroup(model.CurrentMember.Id, groupId.Value);

            model.GroupId = groupId;

            return(model);
        }
Ejemplo n.º 2
0
        protected override MemberModel MapToViewModel(IIntranetMember user)
        {
            var model = base.MapToViewModel(user);

            model.ProfileUrl = _profileLinkProvider.GetProfileLink(user.Id);

            var isAdmin = _groupMemberService
                          .IsMemberAdminOfGroup(user.Id, CurrentGroup()
                                                .Match(Some: GroupId, None: () => Guid.Empty));

            model.IsGroupAdmin = isAdmin;
            model.IsCreator    = _groupService.IsMemberCreator(user.Id, CurrentGroup()
                                                               .Match(Some: GroupId, None: () => Guid.Empty));

            return(model);
        }
Ejemplo n.º 3
0
        public async Task <IHttpActionResult> ExcludeUserFromGroup(Guid groupId, Guid userId)
        {
            var currentMember = _intranetMemberService.GetCurrentMember();

            if (currentMember == null)
            {
                return(NotFound());
            }

            var group   = _groupService.Get(groupId);
            var isAdmin = _groupMemberService.IsMemberAdminOfGroup(currentMember.Id, groupId);

            if (!isAdmin && currentMember.Id != userId && group.CreatorId != userId)
            {
                return(StatusCode(HttpStatusCode.Forbidden));
            }

            await _groupMemberService.RemoveAsync(groupId, userId);

            return(Ok());
        }
        protected virtual bool CanDelete(
            IIntranetMember currentMember,
            GroupModel groupModel,
            IEnumerable <GroupMember> groupMembers,
            IMedia media)
        {
            var mediaCreator = media.GetValue <Guid?>(IntranetConstants.IntranetCreatorId);

            var isMemberAdmin = _groupMemberService.IsMemberAdminOfGroup(currentMember.Id, groupModel.Id);

            return(currentMember.Id == groupModel.CreatorId || isMemberAdmin ||
                   mediaCreator.HasValue && mediaCreator.Value == currentMember.Id &&
                   groupMembers.Any(s => s.MemberId == currentMember.Id));
        }
Ejemplo n.º 5
0
        private bool CanDelete(Guid currentMemberId, GroupModel groupModel, IEnumerable <GroupMember> groupMembers, IMediaModel media)
        {
            if (TryParseIntranetCreatorId(media, out var mediaCreatorId))
            {
                var isMemberAdmin = _groupMemberService.IsMemberAdminOfGroup(currentMemberId, groupModel.Id);

                return(currentMemberId == groupModel.CreatorId ||
                       isMemberAdmin ||
                       mediaCreatorId == currentMemberId &&
                       groupMembers.Any(s => s.MemberId == currentMemberId));
            }

            return(false);
        }
Ejemplo n.º 6
0
        protected virtual IEnumerable <SearchableMemberGroupInfo> FillGroupInfo(IGroupMember user)
        {
            var userGroups = _groupService.GetMany(user.GroupIds);

            return(userGroups.Select(ug =>
            {
                var isCreator = ug.CreatorId == user.Id;
                var groupInfo = new SearchableMemberGroupInfo()
                {
                    GroupId = ug.Id,
                    IsCreator = isCreator,
                    IsAdmin = isCreator || _groupMemberService.IsMemberAdminOfGroup(user.Id, ug.Id)
                };

                return groupInfo;
            }));
        }