This is probably the first feature we need to implement. I'd focus on getting OpenID to work first (we basically become an OpenID provider for those who don't already have one: node library). We'll keep user information in the DB, and each user will have a userRole which will be a number that corresponds to a textual value in a userRoles.json file. Here's the values I suggest (higher userRole values have all the privileges of lesser values):
- 1 - User: Anyone who can sign up. This user can use all the basic features of the site, like open issue, write reviews, flag spam, etc.
- 2 - Script Writer: This is a user who either has an OpenID or GH account, and has posted script(s) on the site.
- 3 - Moderator: This user active on the site and actively flags spam. They can remove content that has been flagged as spam using some set threshold.
- 4 - Admin: This user has been a moderator for awhile, and has actively contributed to the source code of the site. An admin can remove any content posted on the site by a user with a lesser userRole. An admin can make any user a moderator or take away moderator privileges, and nominate a moderator to be an admin. Another admin must confirm the nomination before the nominee becomes an admin.
- 5 - Founding Father: Anyone who actively participated in the initial development of the site. This user can appoint and remove any user as an admin, and remove any content posted on the site by a user with a lesser userRole.
This is probably the first feature we need to implement. I'd focus on getting OpenID to work first (we basically become an OpenID provider for those who don't already have one: node library). We'll keep user information in the DB, and each user will have a
userRolewhich will be a number that corresponds to a textual value in a userRoles.json file. Here's the values I suggest (higher userRole values have all the privileges of lesser values):