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); }
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); }
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)); }
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); }
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; })); }