[support] node_access table

Metzler, David MetzlerD at evergreen.edu
Fri Dec 30 01:14:57 UTC 2005


Hmm... I'm not having that trouble with node_privacy_byrole on the
4.6.x. code, but here are some things I might check. 

1.  Make sure in the table that there are no rows with realm=all, or any
other realm.  

2.  Verify there are no other access control modules enabled. (e.g.
taxonomy_access, organic groups, simple access).

The reason a module is required is that drupal fires the nodeapi hooks
in modules to check  and see if the user has permissions to node
content.  Different modules implement different security in different
ways and the way they are integrated is by implementing the hook.
Drupal does not implement any "node specific security" by default.  So
if you don't have any of these modules enabled all you get is the basic
security model. 

That's at least how I understand it.  As always, I volunteer to be wrong
about this. 

Dave

-----Original Message-----
From: support-bounces at drupal.org [mailto:support-bounces at drupal.org] On
Behalf Of VJ
Sent: Thursday, December 29, 2005 3:38 PM
To: development at drupal.org
Cc: vrao at misteam.net; support at drupal.org
Subject: RE: [support] node_access table

Thanks.

I have node_privacy_byrole installed, but setting everything to 0 for
both node_privacy_byrole_role and node_privacy_byrole_user has no
effect..i.e anyone can access it.

Anyway, Ive had problems with that module before which is why I was
wondering if I can bypass it...i.e set the permissions myself in code.
On my site, when an user clicks 'complete' (which is a custom button),
the node should immediately become read only.

>From your email, I get the impression that I have to use a module. Why 
>is
that? do these modules change the node_load query?

Thanks,

V

> The short answer here is that it depends on which access control 
> modules you're using. If you're using the "og module" it's different 
> then if you're using "node privacy by role".  If I understand it 
> correctly, without additional modules installed this table doesn't do
anything.
>
> You should be extremely careful about modifying this table without 
> using the API's for the appropriate access module.  More info is in 
> the hook_access on the Drupal Api documentation.
>
> If you still want to do this programatically then here's and example:
>
> If you're using node_privacy_by_role, then an example insert would be:
>
> Insert into node_access
> (nid,gid,realm,grant_view,grant_update,grant_delete)
>    values
> (<node>,<role_id>,'node_access_byrole_role',<grant_view>,<grant_update
> >,
> <grant_delete>)
>
>
>
> With the followign replacements:
>   <node> The node id that you're protecting - find from node edit
screen
>   <role_id> the role ID for the role your granting access to.
>   <grant_view> 1 if the role can view, otherwise 0
>   <grant_update> 1 if the role can update, otherwise 0
>   <grant_delete> 1 if the role can delete, otherwise 0
>
>
> -----Original Message-----
> From: support-bounces at drupal.org [mailto:support-bounces at drupal.org] 
> On Behalf Of VJ
> Sent: Thursday, December 29, 2005 9:20 AM
> To: support at drupal.org
> Cc: development at drupal.org
> Subject: [support] node_access table
>
>
>
> How does this table work? If I want to remove comment and update 
> rights to a specific user (or role), whats the exact SQL query?
>
> Thanks,
>
> V
>
> --
> [ Drupal support list | http://lists.drupal.org/ ]
>



--
[ Drupal support list | http://lists.drupal.org/ ]


More information about the support mailing list