phpBB

Development Wiki

Talk:Tutorial.Permissions

From phpBB Development Wiki

Revision as of 20:09, 10 May 2007 by Naderman (Talk | contribs)

Permissions talk page.

Please sign and date your entries by inserting ~~~~ at the end.

Start a new talk topic.


Just wanted to state that adding new permissions should *not* be done through an INSERT statement lonely but through the auth_admin::acl_add_option method.

This possibility should definately be explained as it's the prefered alternative naderman 11:17, 27 December 2006 (UTC)

Panels (in the ACP)

I've added this to the wiki:


To get the permission to show up under the right panel you need to use correct namning. a_view_foo : Administrator permissions panel m_view_foo : Moderator permissions panel u_view_foo : User permissions panel If you use the correct naming and giving it a category the permssion will show under the selected panel. Nothing more need todo.


But it needs to be reformated into a more userfriendly text.

Ztripez 20:04, 26 March 2007 (UTC)

Clear permissions using auth class method

Re-posting a message I received regarding this article... Highway of Life (talk) 17:05, 26 April 2007 (UTC)

I think there is a little improvement possible for an article in the Olympus Wiki ... suggestion:

clear permssions not by deleting cache folder, but using auth class, method

/**
* Clear one or all users cached permission settings
*/
function acl_clear_prefetch($user_id false)
and perhaps you also also must run
/**
* Fill auth_option statement for later querying based on the supplied options
*/
function build_auth_option_statement($key$auth_options, &$sql_opts)

Perhaps this could make modding a bit easier...

Well, I must back... doing some university stuff -- Greetings - Emanuelle_1982

some changes in CVS

well, in the permissions file there is a comment that the permissions lang file must in language/<lang>/acp folder, not into mods folder - it should be checked which method is correct

[EDIT:]both methods seems to be not working, even with clearing cache manually[/EDIT]

file: language/<lang>/acp/permissions_phpbb.php

/*
*    MODDERS PLEASE NOTE
*    
*    You are able to put your permission sets into a separate file too by
*    prefixing the new file with permissions_ and putting it into the acp 
*    language folder.
*
*    An example of how the file could look like:
*
*    <code>
*
*    if (empty($lang) || !is_array($lang))
*    {
*        $lang = array();
*    }
*
*    // Adding new category
*    $lang['permission_cat']['bugs'] = 'Bugs';
*
*    // Adding new permission set
*    $lang['permission_type']['bug_'] = 'Bug Permissions';
*
*    // Adding the permissions
*    $lang = array_merge($lang, array(
*        'acl_bug_view'        => array('lang' => 'Can view bug reports', 'cat' => 'bugs'),
*        'acl_bug_post'        => array('lang' => 'Can post bugs', 'cat' => 'post'), // Using a phpBB category here
*    ));
*
*    </code>
*/

--Emanuelle 1982 11:45, 1 May 2007 (UTC)

Both methods work for me, but unless you have the latest cvs version, the filename must not begin with "permissions_phpbb" - see bug:10301.
OK, that was the problem, now it works *gg*

2nd way for negating a permission

Well, there is a 2nd way to negate a permission request

1st and nearly always used: !$auth->acl_get('u_foo')

2nd (don't like it, not consistent) $auth->acl_get('!u_foo'), but is used too (in includes/mcp/mcp_topic.php)

Mention it or not?

  • Pro: it is a possibility, and is used
  • Contra: it reduces Code Readability

--Emanuelle 1982 16:27, 9 May 2007 (UTC)

I think it is a bug, you should report it. Highway of Life (talk) 15:53, 10 May 2007 (UTC)
was reported, with the said Information, DavidMJ thought that this will not be fixed [it works, there is a substring/strpos combo] bug:10695
This has been implemented as it is a lot more efficient in some cases (not with simple acl_get) and also adds a feature to acl_getf, as you can't just use ! on an array to get forums where a user does not have a permission, this should be documented.