OK, I've modified the user_access() function to utilize the $reset functionality as described here: http://www.lullabot.com/articles/a_beginners_guide_to_caching_data I use something like user_access('reset', NULL, TRUE) to reset the $perm value in the user_access() function. However, to make this work, I need to be able to call this function before other modules call user_access(). So, my question now is: in what hook should I put my user_access() reset call in order to make it is always called first before or when loading a node? Thanks! -ron Quoting Moshe Weitzman <weitzman@tejasa.com>:
it is fine to avoid it with some workaround, ideally you will also submit a patch so next time someone else doesn't have to work around this.
On 8/24/07, sysop@scbbs.com <sysop@scbbs.com> wrote:
Yes, that would be perfect. The problem is that this functionality is currently not in user_access().
I looked at the php docs and see that this is possible, but the only way to implement it in user_access() would be to modify the user.module -- which I'm trying to avoid.
Quoting Moshe Weitzman <weitzman@tejasa.com>:
it is reasonable to add a param to user_access() called $reset which if true, kills $perm at beginning of function. this is how other static caches get rebuilt on demand in drupal.
On 8/23/07, Ron Parker <sysop@scbbs.com> wrote:
I wrote this list before on this issue: http://drupal.org/node/166557; but, received no response. Decided to re-pose the question.
The problem is that I'm getting the "access denied" error on file upload even though the file is uploaded. This is because user_access('upload files') is failing for a user who, in fact, has this permission in this particular group.
I did the following:
1. Modified user_access() function to NOT cache the $perm permissions. 2. Deleted records from cache_menu.
I don't know which (if not both) of the above did the trick, but it resolved the issue. That means (I think) it's a cache problem.
I know I can use cache_clear_all() to delete items from cache_menu. However, I would like know if it's possible to delete/modify the static $perm variable that is set in the user_access() function OUTSIDE of that function?
That is: The user_access() function sets a static variable $perm = array(). Permissions are cached in this variable. Can I create a function in my module that can update the $perm variable that is set in the user_access() function of the node.module?
Thanks for any assistance.
-ron
-- Ron Parker Software Creations http://www.scbbs.com Self-Administration Web Site http://saw.scbbs.com SDSS Subscription Mgmt Service http://sdss.scbbs.com Central Ave Dance Ensemble http://www.centralavedance.com R & B Salsa http://www.randbsalsa.com