[GSoC] New system of restrictions (community prototype)

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
WhiteAngel's picture

The idea I was looking for in different CMS, but didn't find. I also looked a lot of drupal modules and didn't find suitable module.

General:
My idea is to create a special access control system, that support flexible and full restriction methods to author's content.

Description:
This system should meet next requirements:
1. Access system can be applied to all types of content: menu item, category, topic or a single post
2. System should have next restriction types:
- Allow All - allows to read, edit and comment content
- Read and Comment - allow read and comment content
- Read Only - allow only to read content
- Block - restrict all actions for this content (could be applied in the way that content even is not seen if it's blocked)
3. Access restrictions according to username (e.g. "Allow All" to "username1" and "Read Only" to "username2" - this mean that user "username1" have full access to the content and "username2" can only read it)
4. Access restrictions according to password (special password is created for content, only after correct password is specified content can be viewed / edited / commented)
5. This system can be used by administrators and users, so each user can restrict access to his content with appropriate restriction method
6. Also, special type of restriction can be added: access by invitation - if author of content sends an invitation token to the user / e-mail he would like to invite and to see his content
7. Users and Content types should be taken from Drupal general database and not creating new tables in database
8. For "Blocked" users should be implemented 2 options:
- ask for access (send request to gain access to the author of the content)
- to see special small part of information about the content (e.g. first paragraph of the text to see what this content is about)
9. Also, restriction by user group can be added (e.g. "Not Registered" user is "Blocked" and all "Authors" are "Read Only")

Aim:
1. This system should give a new look to Drupal and invite new auditory of users: bloggers, forum users e.t.c
This system can be used to create:
- complicated forums (with special restrictions and access lists)
- some kind of communities
- different portals with various access levels
2. This system gives additional type of control of content for administrators and users

Comments

This sounds a lot like

dawehner's picture

This sounds a lot like hook_entity_access.

So you can build access per entity instead of per node like it's currently.

You are right. Seems pretty

WhiteAngel's picture

You are right. Seems pretty similar, but now it's on the stage of development and it's a bit smaller with functionality than my idea.