2013-06-28 10:52:13 +02:00
< ? php
/**
*
* @ package phpBB3
* @ copyright ( c ) 2013 phpBB Group
* @ license http :// opensource . org / licenses / gpl - 2.0 . php GNU General Public License v2
*
*/
/**
* DO NOT CHANGE
*/
if ( ! defined ( 'IN_PHPBB' ))
{
exit ;
}
class phpbb_permissions
{
/**
* Event dispatcher object
2013-06-28 11:16:52 +02:00
* @ var phpbb_event_dispatcher
2013-06-28 10:52:13 +02:00
*/
protected $dispatcher ;
/**
* Constructor
*
2013-06-28 11:16:52 +02:00
* @ param phpbb_event_dispatcher $phpbb_dispatcher Event dispatcher
2013-06-28 10:52:13 +02:00
* @ return null
*/
2013-06-28 11:16:52 +02:00
public function __construct ( phpbb_event_dispatcher $phpbb_dispatcher )
2013-06-28 10:52:13 +02:00
{
$this -> dispatcher = $phpbb_dispatcher ;
}
public function get_categories ()
{
$categories = $this -> categories ;
/**
* Allows to specify additional permission categories
*
* @ event core . permissions_get_categories
* @ var array categories Array with permission categories ( pm , post , settings , misc , etc . )
* @ since 3.1 - A1
*/
$vars = array ( 'categories' );
extract ( $this -> dispatcher -> trigger_event ( 'core.permissions_get_categories' , $vars ));
return $categories ;
}
public function get_types ()
{
$types = $this -> types ;
/**
* Allows to specify additional permission types
*
* @ event core . permissions_get_types
* @ var array types Array with permission types ( a_ , u_ , m_ , etc . )
* @ since 3.1 - A1
*/
$vars = array ( 'types' );
extract ( $this -> dispatcher -> trigger_event ( 'core.permissions_get_types' , $vars ));
return $types ;
}
public function get_permissions ()
{
$permissions = $this -> permissions ;
/**
* Allows to specify additional permissions
*
* @ event core . permissions_get_types
* @ var array permissions Array with permissions . Each Permission has the following layout :
* 'acl_<type><permission>' => array (
* 'lang' => 'Language Key with a Short description' , // Optional, if not set,
* // the permissions identifier 'acl_<type><permission>' is used with
* // all uppercase.
* 'cat' => 'Identifier of the category, the permission should be displayed in' ,
* ),
* Example :
* 'acl_u_viewprofile' => array (
* 'lang' => 'ACL_U_VIEWPROFILE' ,
* 'cat' => 'profile' ,
* ),
*
* @ since 3.1 - A1
*/
$vars = array ( 'permissions' );
extract ( $this -> dispatcher -> trigger_event ( 'core.permissions_get_permissions' , $vars ));
return $permissions ;
}
protected $types = array (
'u_' => 'ACL_TYPE_USER' ,
'a_' => 'ACL_TYPE_ADMIN' ,
'm_' => 'ACL_TYPE_MODERATOR' ,
'f_' => 'ACL_TYPE_FORUM' ,
'global' => array (
'm_' => 'ACL_TYPE_GLOBAL_MODERATOR' ,
),
);
protected $categories = array (
2013-06-28 11:10:33 +02:00
'actions' => 'ACL_CAT_ACTIONS' ,
'content' => 'ACL_CAT_CONTENT' ,
'forums' => 'ACL_CAT_FORUMS' ,
'misc' => 'ACL_CAT_MISC' ,
'permissions' => 'ACL_CAT_PERMISSIONS' ,
'pm' => 'ACL_CAT_PM' ,
'polls' => 'ACL_CAT_POLLS' ,
'post' => 'ACL_CAT_POST' ,
'post_actions' => 'ACL_CAT_POST_ACTIONS' ,
'posting' => 'ACL_CAT_POSTING' ,
'profile' => 'ACL_CAT_PROFILE' ,
'settings' => 'ACL_CAT_SETTINGS' ,
'topic_actions' => 'ACL_CAT_TOPIC_ACTIONS' ,
'user_group' => 'ACL_CAT_USER_GROUP' ,
2013-06-28 10:52:13 +02:00
);
protected $permissions = array (
// User Permissions
'acl_u_viewprofile' => array ( 'lang' => 'Can view profiles, memberlist and online list' , 'cat' => 'profile' ),
'acl_u_chgname' => array ( 'lang' => 'Can change username' , 'cat' => 'profile' ),
'acl_u_chgpasswd' => array ( 'lang' => 'Can change password' , 'cat' => 'profile' ),
'acl_u_chgemail' => array ( 'lang' => 'Can change email address' , 'cat' => 'profile' ),
'acl_u_chgavatar' => array ( 'lang' => 'Can change avatar' , 'cat' => 'profile' ),
'acl_u_chggrp' => array ( 'lang' => 'Can change default usergroup' , 'cat' => 'profile' ),
'acl_u_chgprofileinfo' => array ( 'lang' => 'Can change profile field information' , 'cat' => 'profile' ),
'acl_u_attach' => array ( 'lang' => 'Can attach files' , 'cat' => 'post' ),
'acl_u_download' => array ( 'lang' => 'Can download files' , 'cat' => 'post' ),
'acl_u_savedrafts' => array ( 'lang' => 'Can save drafts' , 'cat' => 'post' ),
'acl_u_chgcensors' => array ( 'lang' => 'Can disable word censors' , 'cat' => 'post' ),
'acl_u_sig' => array ( 'lang' => 'Can use signature' , 'cat' => 'post' ),
'acl_u_sendpm' => array ( 'lang' => 'Can send private messages' , 'cat' => 'pm' ),
'acl_u_masspm' => array ( 'lang' => 'Can send messages to multiple users' , 'cat' => 'pm' ),
'acl_u_masspm_group' => array ( 'lang' => 'Can send messages to groups' , 'cat' => 'pm' ),
'acl_u_readpm' => array ( 'lang' => 'Can read private messages' , 'cat' => 'pm' ),
'acl_u_pm_edit' => array ( 'lang' => 'Can edit own private messages' , 'cat' => 'pm' ),
'acl_u_pm_delete' => array ( 'lang' => 'Can remove private messages from own folder' , 'cat' => 'pm' ),
'acl_u_pm_forward' => array ( 'lang' => 'Can forward private messages' , 'cat' => 'pm' ),
'acl_u_pm_emailpm' => array ( 'lang' => 'Can email private messages' , 'cat' => 'pm' ),
'acl_u_pm_printpm' => array ( 'lang' => 'Can print private messages' , 'cat' => 'pm' ),
'acl_u_pm_attach' => array ( 'lang' => 'Can attach files in private messages' , 'cat' => 'pm' ),
'acl_u_pm_download' => array ( 'lang' => 'Can download files in private messages' , 'cat' => 'pm' ),
'acl_u_pm_bbcode' => array ( 'lang' => 'Can use BBCode in private messages' , 'cat' => 'pm' ),
'acl_u_pm_smilies' => array ( 'lang' => 'Can use smilies in private messages' , 'cat' => 'pm' ),
'acl_u_pm_img' => array ( 'lang' => 'Can use [img] BBCode tag in private messages' , 'cat' => 'pm' ),
'acl_u_pm_flash' => array ( 'lang' => 'Can use [flash] BBCode tag in private messages' , 'cat' => 'pm' ),
'acl_u_sendemail' => array ( 'lang' => 'Can send emails' , 'cat' => 'misc' ),
'acl_u_sendim' => array ( 'lang' => 'Can send instant messages' , 'cat' => 'misc' ),
'acl_u_ignoreflood' => array ( 'lang' => 'Can ignore flood limit' , 'cat' => 'misc' ),
'acl_u_hideonline' => array ( 'lang' => 'Can hide online status' , 'cat' => 'misc' ),
'acl_u_viewonline' => array ( 'lang' => 'Can view hidden online users' , 'cat' => 'misc' ),
'acl_u_search' => array ( 'lang' => 'Can search board' , 'cat' => 'misc' ),
// Forum Permissions
'acl_f_list' => array ( 'lang' => 'Can see forum' , 'cat' => 'actions' ),
'acl_f_read' => array ( 'lang' => 'Can read forum' , 'cat' => 'actions' ),
'acl_f_search' => array ( 'lang' => 'Can search the forum' , 'cat' => 'actions' ),
'acl_f_subscribe' => array ( 'lang' => 'Can subscribe forum' , 'cat' => 'actions' ),
'acl_f_print' => array ( 'lang' => 'Can print topics' , 'cat' => 'actions' ),
'acl_f_email' => array ( 'lang' => 'Can email topics' , 'cat' => 'actions' ),
'acl_f_bump' => array ( 'lang' => 'Can bump topics' , 'cat' => 'actions' ),
'acl_f_user_lock' => array ( 'lang' => 'Can lock own topics' , 'cat' => 'actions' ),
'acl_f_download' => array ( 'lang' => 'Can download files' , 'cat' => 'actions' ),
'acl_f_report' => array ( 'lang' => 'Can report posts' , 'cat' => 'actions' ),
'acl_f_post' => array ( 'lang' => 'Can start new topics' , 'cat' => 'post' ),
'acl_f_sticky' => array ( 'lang' => 'Can post stickies' , 'cat' => 'post' ),
'acl_f_announce' => array ( 'lang' => 'Can post announcements' , 'cat' => 'post' ),
'acl_f_reply' => array ( 'lang' => 'Can reply to topics' , 'cat' => 'post' ),
'acl_f_edit' => array ( 'lang' => 'Can edit own posts' , 'cat' => 'post' ),
'acl_f_delete' => array ( 'lang' => 'Can delete own posts' , 'cat' => 'post' ),
'acl_f_ignoreflood' => array ( 'lang' => 'Can ignore flood limit' , 'cat' => 'post' ),
'acl_f_postcount' => array ( 'lang' => 'Increment post counter<br /><em>Please note that this setting only affects new posts.</em>' , 'cat' => 'post' ),
'acl_f_noapprove' => array ( 'lang' => 'Can post without approval' , 'cat' => 'post' ),
'acl_f_attach' => array ( 'lang' => 'Can attach files' , 'cat' => 'content' ),
'acl_f_icons' => array ( 'lang' => 'Can use topic/post icons' , 'cat' => 'content' ),
'acl_f_bbcode' => array ( 'lang' => 'Can use BBCode' , 'cat' => 'content' ),
'acl_f_flash' => array ( 'lang' => 'Can use [flash] BBCode tag' , 'cat' => 'content' ),
'acl_f_img' => array ( 'lang' => 'Can use [img] BBCode tag' , 'cat' => 'content' ),
'acl_f_sigs' => array ( 'lang' => 'Can use signatures' , 'cat' => 'content' ),
'acl_f_smilies' => array ( 'lang' => 'Can use smilies' , 'cat' => 'content' ),
'acl_f_poll' => array ( 'lang' => 'Can create polls' , 'cat' => 'polls' ),
'acl_f_vote' => array ( 'lang' => 'Can vote in polls' , 'cat' => 'polls' ),
'acl_f_votechg' => array ( 'lang' => 'Can change existing vote' , 'cat' => 'polls' ),
// Moderator Permissions
'acl_m_edit' => array ( 'lang' => 'Can edit posts' , 'cat' => 'post_actions' ),
'acl_m_delete' => array ( 'lang' => 'Can delete posts' , 'cat' => 'post_actions' ),
'acl_m_approve' => array ( 'lang' => 'Can approve posts' , 'cat' => 'post_actions' ),
'acl_m_report' => array ( 'lang' => 'Can close and delete reports' , 'cat' => 'post_actions' ),
'acl_m_chgposter' => array ( 'lang' => 'Can change post author' , 'cat' => 'post_actions' ),
'acl_m_move' => array ( 'lang' => 'Can move topics' , 'cat' => 'topic_actions' ),
'acl_m_lock' => array ( 'lang' => 'Can lock topics' , 'cat' => 'topic_actions' ),
'acl_m_split' => array ( 'lang' => 'Can split topics' , 'cat' => 'topic_actions' ),
'acl_m_merge' => array ( 'lang' => 'Can merge topics' , 'cat' => 'topic_actions' ),
'acl_m_info' => array ( 'lang' => 'Can view post details' , 'cat' => 'misc' ),
'acl_m_warn' => array ( 'lang' => 'Can issue warnings<br /><em>This setting is only assigned globally. It is not forum based.</em>' , 'cat' => 'misc' ), // This moderator setting is only global (and not local)
'acl_m_ban' => array ( 'lang' => 'Can manage bans<br /><em>This setting is only assigned globally. It is not forum based.</em>' , 'cat' => 'misc' ), // This moderator setting is only global (and not local)
// Admin Permissions
'acl_a_board' => array ( 'lang' => 'Can alter board settings/check for updates' , 'cat' => 'settings' ),
'acl_a_server' => array ( 'lang' => 'Can alter server/communication settings' , 'cat' => 'settings' ),
'acl_a_jabber' => array ( 'lang' => 'Can alter Jabber settings' , 'cat' => 'settings' ),
'acl_a_phpinfo' => array ( 'lang' => 'Can view php settings' , 'cat' => 'settings' ),
'acl_a_forum' => array ( 'lang' => 'Can manage forums' , 'cat' => 'forums' ),
'acl_a_forumadd' => array ( 'lang' => 'Can add new forums' , 'cat' => 'forums' ),
'acl_a_forumdel' => array ( 'lang' => 'Can delete forums' , 'cat' => 'forums' ),
'acl_a_prune' => array ( 'lang' => 'Can prune forums' , 'cat' => 'forums' ),
'acl_a_icons' => array ( 'lang' => 'Can alter topic/post icons and smilies' , 'cat' => 'posting' ),
'acl_a_words' => array ( 'lang' => 'Can alter word censors' , 'cat' => 'posting' ),
'acl_a_bbcode' => array ( 'lang' => 'Can define BBCode tags' , 'cat' => 'posting' ),
'acl_a_attach' => array ( 'lang' => 'Can alter attachment related settings' , 'cat' => 'posting' ),
'acl_a_user' => array ( 'lang' => 'Can manage users<br /><em>This also includes seeing the users browser agent within the viewonline list.</em>' , 'cat' => 'user_group' ),
'acl_a_userdel' => array ( 'lang' => 'Can delete/prune users' , 'cat' => 'user_group' ),
'acl_a_group' => array ( 'lang' => 'Can manage groups' , 'cat' => 'user_group' ),
'acl_a_groupadd' => array ( 'lang' => 'Can add new groups' , 'cat' => 'user_group' ),
'acl_a_groupdel' => array ( 'lang' => 'Can delete groups' , 'cat' => 'user_group' ),
'acl_a_ranks' => array ( 'lang' => 'Can manage ranks' , 'cat' => 'user_group' ),
'acl_a_profile' => array ( 'lang' => 'Can manage custom profile fields' , 'cat' => 'user_group' ),
'acl_a_names' => array ( 'lang' => 'Can manage disallowed names' , 'cat' => 'user_group' ),
'acl_a_ban' => array ( 'lang' => 'Can manage bans' , 'cat' => 'user_group' ),
'acl_a_viewauth' => array ( 'lang' => 'Can view permission masks' , 'cat' => 'permissions' ),
'acl_a_authgroups' => array ( 'lang' => 'Can alter permissions for individual groups' , 'cat' => 'permissions' ),
'acl_a_authusers' => array ( 'lang' => 'Can alter permissions for individual users' , 'cat' => 'permissions' ),
'acl_a_fauth' => array ( 'lang' => 'Can alter forum permission class' , 'cat' => 'permissions' ),
'acl_a_mauth' => array ( 'lang' => 'Can alter moderator permission class' , 'cat' => 'permissions' ),
'acl_a_aauth' => array ( 'lang' => 'Can alter admin permission class' , 'cat' => 'permissions' ),
'acl_a_uauth' => array ( 'lang' => 'Can alter user permission class' , 'cat' => 'permissions' ),
'acl_a_roles' => array ( 'lang' => 'Can manage roles' , 'cat' => 'permissions' ),
'acl_a_switchperm' => array ( 'lang' => 'Can use others permissions' , 'cat' => 'permissions' ),
'acl_a_styles' => array ( 'lang' => 'Can manage styles' , 'cat' => 'misc' ),
'acl_a_extensions' => array ( 'lang' => 'Can manage extensions' , 'cat' => 'misc' ),
'acl_a_viewlogs' => array ( 'lang' => 'Can view logs' , 'cat' => 'misc' ),
'acl_a_clearlogs' => array ( 'lang' => 'Can clear logs' , 'cat' => 'misc' ),
'acl_a_modules' => array ( 'lang' => 'Can manage modules' , 'cat' => 'misc' ),
'acl_a_language' => array ( 'lang' => 'Can manage language packs' , 'cat' => 'misc' ),
'acl_a_email' => array ( 'lang' => 'Can send mass email' , 'cat' => 'misc' ),
'acl_a_bots' => array ( 'lang' => 'Can manage bots' , 'cat' => 'misc' ),
'acl_a_reasons' => array ( 'lang' => 'Can manage report/denial reasons' , 'cat' => 'misc' ),
'acl_a_backup' => array ( 'lang' => 'Can backup/restore database' , 'cat' => 'misc' ),
'acl_a_search' => array ( 'lang' => 'Can manage search backends and settings' , 'cat' => 'misc' ),
);
}