private bool HasSocialReplationship(UserInfo targetUser, UserInfo accessingUser, string extendedVisibility) { if (string.IsNullOrEmpty(extendedVisibility)) { return(false); } var profileVisibility = new ProfileVisibility(PortalSettings.PortalId, extendedVisibility); var isVisible = accessingUser.UserID == targetUser.UserID; if (!isVisible) { //Relationships foreach (var relationship in profileVisibility.RelationshipVisibilities) { switch (relationship.RelationshipTypeId) { case (int)DefaultRelationshipTypes.Followers: isVisible = targetUser.Social.Following != null && targetUser.Social.Following.Status == RelationshipStatus.Accepted; break; case (int)DefaultRelationshipTypes.Friends: isVisible = targetUser.Social.Friend != null && targetUser.Social.Friend.Status == RelationshipStatus.Accepted; break; default: isVisible = targetUser.Social.UserRelationships.Any(userRelationship => (userRelationship.RelationshipId == relationship.RelationshipId && accessingUser.UserID == userRelationship.RelatedUserId && userRelationship.Status == RelationshipStatus.Accepted) ); break; } if (isVisible) { break; } } //Groups/Roles if (profileVisibility.RoleVisibilities.Any(role => accessingUser.IsInRole(role.RoleName))) { isVisible = true; } } return(isVisible); }
public ProfileVisibilityDto(ProfileVisibility visibility) { VisibilityMode = visibility.VisibilityMode; RoleVisibilities = visibility.RoleVisibilities.Select(r => r.RoleID).ToList(); RelationshipVisibilities = visibility.RelationshipVisibilities.Select(r => r.RelationshipId).ToList(); }
/// <summary> /// Sets the player's profile visibility /// </summary> /// <param name="profileVisibility">The profile visibility</param> public void SetProfileVisibility(ProfileVisibility profileVisibility) { bool requestedVisibility = profileVisibility == ProfileVisibility.Public; this.SetProfileVisibility(requestedVisibility); }