Ticket #1493 (new enhancement)
Deprecate Friends component and replace with Personal Group type
| Reported by: | johnjamesjacoby | Owned by: | johnjamesjacoby |
|---|---|---|---|
| Priority: | major | Milestone: | Future Release |
| Component: | Keywords: | ||
| Cc: | apeatling, johnjamesjacoby |
Description
Since "friends" are just a group of users, the thought is you could ditch the "friends" component all together in lieu of letting users create their own personal groups, where they pick who's in them rather than people just joining them.
People could request membership the same as they do now, except with this method "friends" reaps the benefits of everything the groups API can do. This would solve the group activity feed/list/filter issue also, since my private groups of friends would just show up as another group to view and post to.
It would solve Jeff Sayre's user relationship issue too, because then he could create 10 private groups and call them what he wants and put people in them however he wants.
Our fear is that this might over complicate the groups component, so making the UI easy to understand is critical if we go this route. It also blurs the lines as to what "groups" actually represent.
What I notice on testbp.org is that when people join the site, they immediately do three things. Check out the activity wall, join groups, and add friends. This would simplify the group/friend process and make it a one shot deal.
Other open source software works similarly. phpBB uses groups in a way that works on both an Access Control level, and a friends/foes/ignored users type of level.
If we introduced a "system" group type, you could basically have site-wide moderators, site-wide contributors, etc... Groups of users that have their own forums, activities, members, and scopes.
My theory for how this works is a lot like Twitter's lists, only they work in both directions. Not only is it a group of people that I know, the people I've added to that group now can talk back and forth to one another because I've added them as a "friend." It's a way for my circle of friends to talk using me as the center.
In the group creation process, I just imagine seeing an extra option for a "personal" group type, and maybe a "system" type if we expand it that far.
These groups act like hidden groups, except people can request to be in them, as well as the group admin being able to add anyone to the group they wanted.
DB migration wouldn't be too hard. Just make new groups called "friends" for each user, and add the user_id's that everyone already has as friends.
URI's would need to be mapped away from /groups to /members/john/groups/group_name instead.
The "friends" component then could be replaced with something similar to the "follow/followers" model of Twitter. Something a little lighter and less meaningful than a group or a friend.
Thoughts?
