Repository metrics
- Stars
- (1 star)
- PR merge metrics
- (No merged PRs in 30d)
Description
Terminology: Facebook group/user is a group/user on "facebook.com". KIDS Facebook group/user is a group/user linked with a "facebook.com" group/user in the TAKT-KIDS system. Local group/user is a group/user in the TAKT-KIDS system not linked with any third-party.
Proposal: The group model should have two types, "Local" and "Facebook". KIDS Facebook groups should have a special field, "Facebook Group ID".
Facebook registration, login and linking should be implemented.
The user model should have a field "Facebook User ID" which will be set upon Facebook registration or voluntary Facebook linking.
Upon Facebook registration, login or linking, user's Facebook group list should be matched against KIDS Facebook groups' "Facebook Group ID" fields. KIDS Facebook users should be granted permissions of matching KIDS Facebook groups.
Implementation Method: The implementation should be done in such a way that users are completely stripped from their permissions when they are removed from the Facebook group. Looking for Facebook group membership in every permission check will be too expensive and slow the system down. Groups will be checked when a user logs in, but users who already logged in will not be and will continue to have KIDS Facebook group permissions after being removed from the linked Facebook group. A special permission "admin | group | Force recheck Facebook membership" can be added and given to admins which will provide access to an action that marks all users in a KIDS Facebook group with the status "Facebook-dirty". Upon every permission check, "Facebook-dirty" users should be logged out and be forced to login which will trigger a Facebook group membership check.