This module allows restrict access to nodes by native URL "node/nid" and "node" (default node).
It restricts access by native URL for all roles except "Administrator" by default.
You may permit access for specific role in Drupal admin permissions form - "admin/people/permissions"
User will be redirected to "Page Not Found 404" page in case if he/she try to access node by native URL "node/nid" and has no permission to do so.
There is two ways to address content in Drupal - a) with node/nid and 2) with path aliases.
Mixing both types of addressing will cause complicated problems related to visibility settings (at lease blocks visibility)
This module will allow you to implement addressing with node aliases and restrict access by node/nid for desired roles (for example for anonymous users).
Of course node access with native URL is very important for web site developers and administrators.
So, this module allows to manage which roles will have an acces to nodes (and other functions like node/nid/edit, etc.) by native URL.
Module tries to implement same functionality as www.whitehouse.gov have (it does not allow access by node/nid)
Many people asked about how to implement this use case but there is no acceptable solution found and no drupal module contributed:
1) http://drupal.org/node/952398
2) http://drupal.org/node/164526
| Comment | File | Size | Author |
|---|---|---|---|
| #6 | node_nuac-7.x-1.0-dev.tar_.gz | 8.65 KB | extde |
| #1 | node_nuac-7.x-1.0-dev.tar_.gz | 7.13 KB | extde |
Comments
Comment #1
extde commentedComment #2
extde commentedComment #3
extde commentedComment #4
bojanz commentedWhat about Global Redirect?
If you need it not to redirect for admin, and Global Redirect is missing that feature, that would be a 3 line patch.
Comment #5
extde commentedHello Bojan,
I checked Global Redirect of course before writing this module.
There are several "why" exists why I can't use this module:
unset($_REQUEST['destination']);Node NUAC
Node Native URL Access Control is an Drupal Node security extension module.
It allows to restrict access to nodes using native URL "node/<nid>".
Access to nodes by native URL will be restricted to all user roles except Administrator role by default when you install and enable this module first time.
Drupal superuser (uid=1) will be not affected because drupal core implements security bypass for superuser.
Users (with "Administer permissions" allowed) can allow or restrict access to nodes by native URL for each role separately.
There will be no difference in drupal behavior in case if access to nodes by native URL allowed for current user role, otherwise module will forward to "Page Not Found 404" page, if user tries to access node by native URL, but current user role restricts this access.
What is the defference between Global Redirect module and Node NUAC?
Global Redirect module tries to fix SEO problems related to situation when multiple URLs pointing to same node. For example it will redirect following URLs to node alias.
Global Redirect uses HTTP 301 and HTTP 302 redirect responses. Actually it is module that tries to fix problem.
While Node Native URL Access Control module is a security extension module.
It does not apply limitations to current Drupal implementation, but provides flexibility for web site developers.
Node NUAC uses forward method (does not use HTTP 301/302), so, it works on the server side without sending additional HTTP redirect response (and following overhead).
Both modules serves different use cases.
Node NUAC uses Drupal core forms for configuration in opposite to Global Redirect that uses separate administration form.
Keeping Node NUAC and Global Redirect as a separate modules allows web site developers enable required functions only and implement issue separation when issues in the modules will not spread across each module border.
What is wrong with Global Redirect and why Node NUAC should be used instead?
What cases are not covered by Node NUAC
Node NUAC module takes care about node native URL only. All other native URLs are not affected.
I hope it is enough explanation why my module should be allowed.
Let me know if you have any questions.
Regards,
Dmitry Trifonov
Comment #6
extde commentedSome testing performed
Comment #7
avpadernoComment #8
zzolo commentedHi. Please read all the following and the links provided as this is very important information about your CVS Application:
Drupal.org has moved from CVS to Git! This is a very significant change for the Drupal community and for your application. Please read the following documentation on how this affects and benefits you and the application process:
Migrating from CVS Applications to (Git) Full Project Applications
Comment #9
avpadernoAs per previous comment, I am setting this issue as Won't fix.
Since now users can create full projects, applications have now a different purpose and they are handled on a different issue queue. See Apply for permission to opt into security advisory coverage for more information.