This is just some sketches for a standard implementation of progressive permissions. The scale of the levels should probably be kind of exponential, forcing the user to do actions on the highest level to continue to level up.

The levels and what they allow should be declared openly on some page, as should the points you get for different actions.

Anonymous user
* Should be able to create account, e-mail verification required.
* Can browse all topics and resources (including comments, if used)

Level 0 ("white belt", awarded on creating account)
* Can mark resources as completed
* Can comment (if enabled)
* Get points for completing resources (1 point + 1 point to author, all revoked on unflag)
* Get points for new comments (1 point)

Level 1 ("yellow belt", awarded on 10 points)
* Can vote on resources
* Can mark topics as mastered
* Get points for voting (2 points, revoked on unvote)
* Get points for mastering topics (5 points + 1 point to author, all revoked on unflag)

Level 2 ("orange belt", awarded on 100 points)
* Can vote on topic relations
* Can view *all* topic relations (good to hide this, since the list might be overwhelming for newbies)
* Can add new resources
* Get points for voting on topic relations (2 points per vote, revoked on unvote)
* Get many points for adding new resources (15 points)
* Bonus: Two extra points awarded if external resource points to drupal.org. ;-)
* Get points for top-votes on own resources (2 points for 100% vote, revoked on lowering)

Level 3 ("green belt", awarded on 500 points)
* Can add new topic relations
* Can super-vote on topic relations, but not too often (if implemented)
* Can award points to users on level 1–2 (but not too often?)
* Get points for adding new topic relations (causes execution error for 'Maximum function nesting level' – implemented but disabled)
* Get points for up-votes on own relations (requires relation ownership – not implemented)
* Get points (or lose points?) when awarding to users on level 1–2? (not implemented)

Level 4 ("blue belt", awarded on 1250 points)
* Can add new topics
* Can edit resources, but not too often(?)
* Get points for adding new topics (15 points)
* Get points when resources are added to own topic (5 points to author of first mentioned topic)
* Get points when own topic is related to other topics (causes execution error for 'Maximum function nesting level' – implemented but disabled)

Level 5 ("brown belt", awarded on 5000 points)
* Can edit topics(?)
* Can unpublish topics and resources(?)

Comments

itangalo’s picture

Did first implementation of the point awarding. (No point limits added yet – only reaction rules that award points.)

Updating issue summary.

itangalo’s picture

Issue summary: View changes

Added the implemented point awards.

itangalo’s picture

Issue summary: View changes

Added a line with the bonus points given if external resources points to drupal.org.

itangalo’s picture

The problem with Fatal error: Maximum function nesting level of '100' reached, aborting! can be solved locally by adding the line xdebug.max_nesting_level = 200 to php.ini.

I'm a bit hesitant to include these reaction rules in Skill Compass, though, as this error message tells me things should be solved in another way. We'll see.

itangalo’s picture

Issue summary: View changes

Updated line about getting points when resources are added to own topic.

itangalo’s picture

Status: Active » Fixed

Allright. Functionality for points and levels, as described above, is now pushed to the feature called sc_example_points. Closing this issue until the levels and points can be tested on a real site.

itangalo’s picture

Version: » 7.x-1.x-dev

I'm considering making it possible to vote on resources earlier – maybe even at white bel level.
It's a functionality you expect to be able to use when you log in to the site.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Leeteq’s picture

Title: [meta] Progressive permissions sketches » [meta] Progressive permissions sketches for Skill Compass
Status: Closed (fixed) » Needs review

I suggest we keep this issue open for input for a while. This is interesting stuff, and I for one have not had time to give feedback yet.

itangalo’s picture

Cool!

Some more thougts about permissions are found here: http://skillcompass.org/blog/thoughts-encourage-very-granular-topics

tsavory’s picture

Sure is an interesting Idea. This allows users to have to build up a trust. I used that form of logic on the forums I used to manage and it seemed to work very well. It takes time and dedication to climb your way to each of the steps.
TOm

itangalo’s picture

Status: Needs review » Fixed

Closing this for now. Feel free to reopen if you want changes.

Leeteq’s picture

Personally, I will not be able to get involved until late autumn, when my CM-related activities brings me to this topic by their own progress and developments. I think this is a _major_ issue, and have been surprised about its lack of attention.

In the next stages of my own projects, this topic will be given full attention and I think it deserves to be discussed and stay visible for long time here at drupal.org, at least many more months. (Where else is this topic discussed or worked on from this angle?)

Not sure if there has been a disappointing lack of feedback related to this particular discussion invitation (these comments, contact form and on the compass-website?), but the challenge here is quite an undertaking and perhaps suitable only for relatively few projects with broad, long term, committing/strategic scope.

So just in case: please dont feel discouraged just yet... ;-)

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

Updated level names and points.