/** * Constructor * @param array An arry of options to oeverride the class defaults */ function JAuthorization($options = NULL) { parent::gacl($options); // ARO value is currently the user type, // this changes to user id in proper implementation // No hierarchial inheritance so have to do that the long way $this->acl = array(); // special ACl with return value to edit user $this->addACL('com_user', 'edit', 'users', 'super administrator', null, null, ''); $this->addACL('com_user', 'edit', 'users', 'administrator', null, null, ''); $this->addACL('com_user', 'edit', 'users', 'manager', null, null, ''); // return value defines xml setup file variant $this->addACL('com_user', 'edit', 'users', 'author', null, null, 'author'); $this->addACL('com_user', 'edit', 'users', 'editor', null, null, 'author'); $this->addACL('com_user', 'edit', 'users', 'publisher', null, null, 'author'); $this->addACL('com_user', 'edit', 'users', 'registered', null, null, 'registered'); // backend login $this->addACL('login', 'administrator', 'users', 'administrator'); $this->addACL('login', 'administrator', 'users', 'super administrator'); $this->addACL('login', 'administrator', 'users', 'manager'); $this->addACL('login', 'site', 'users', 'administrator'); $this->addACL('login', 'site', 'users', 'super administrator'); $this->addACL('login', 'site', 'users', 'manager'); $this->addACL('login', 'site', 'users', 'registered'); $this->addACL('login', 'site', 'users', 'author'); $this->addACL('login', 'site', 'users', 'editor'); $this->addACL('login', 'site', 'users', 'publisher'); // backend menus $this->addACL('com_banners', 'manage', 'users', 'super administrator'); $this->addACL('com_banners', 'manage', 'users', 'administrator'); $this->addACL('com_banners', 'manage', 'users', 'manager'); $this->addACL('com_checkin', 'manage', 'users', 'super administrator'); $this->addACL('com_checkin', 'manage', 'users', 'administrator'); $this->addACL('com_cache', 'manage', 'users', 'super administrator'); $this->addACL('com_cache', 'manage', 'users', 'administrator'); $this->addACL('com_settings', 'manage', 'users', 'super administrator'); //$this->addACL( 'com_settings', 'manage', 'users', 'administrator' ); $this->addACL('com_contacts', 'manage', 'users', 'super administrator'); $this->addACL('com_contacts', 'manage', 'users', 'administrator'); $this->addACL('com_contacts', 'manage', 'users', 'manager'); $this->addACL('com_components', 'manage', 'users', 'super administrator'); $this->addACL('com_components', 'manage', 'users', 'administrator'); $this->addACL('com_components', 'manage', 'users', 'manager'); // access to installers and base installer $this->addACL('com_installer', 'installer', 'users', 'administrator'); $this->addACL('com_installer', 'installer', 'users', 'super administrator'); $this->addACL('com_installer', 'component', 'users', 'administrator'); $this->addACL('com_installer', 'component', 'users', 'super administrator'); $this->addACL('com_installer', 'language', 'users', 'super administrator'); $this->addACL('com_installer', 'language', 'users', 'administrator'); $this->addACL('com_installer', 'module', 'users', 'administrator'); $this->addACL('com_installer', 'module', 'users', 'super administrator'); $this->addACL('com_installer', 'plugin', 'users', 'administrator'); $this->addACL('com_installer', 'plugin', 'users', 'super administrator'); $this->addACL('com_installer', 'template', 'users', 'super administrator'); $this->addACL('com_installer', 'template', 'users', 'administrator'); $this->addACL('com_languages', 'manage', 'users', 'super administrator'); $this->addACL('com_plugins', 'manage', 'users', 'super administrator'); $this->addACL('com_plugins', 'manage', 'users', 'administrator'); // uncomment following to allow managers to edit modules //array( 'administration', 'edit', 'users', 'manager', 'modules', 'all' ); $this->addACL('com_files', 'manage', 'users', 'super administrator'); $this->addACL('com_files', 'manage', 'users', 'administrator'); $this->addACL('com_files', 'manage', 'users', 'manager'); $this->addACL('com_files', 'popup', 'users', 'super administrator'); $this->addACL('com_files', 'popup', 'users', 'administrator'); $this->addACL('com_files', 'popup', 'users', 'manager'); $this->addACL('com_files', 'popup', 'users', 'registered'); $this->addACL('com_files', 'popup', 'users', 'author'); $this->addACL('com_files', 'popup', 'users', 'editor'); $this->addACL('com_files', 'popup', 'users', 'publisher'); $this->addACL('com_files', 'upload', 'users', 'super administrator'); $this->addACL('com_files', 'upload', 'users', 'administrator'); $this->addACL('com_files', 'upload', 'users', 'manager'); $this->addACL('com_menus', 'manage', 'users', 'administrator'); $this->addACL('com_menus', 'manage', 'users', 'super administrator'); $this->addACL('com_modules', 'manage', 'users', 'super administrator'); $this->addACL('com_modules', 'manage', 'users', 'administrator'); $this->addACL('com_newsfeeds', 'manage', 'users', 'super administrator'); $this->addACL('com_newsfeeds', 'manage', 'users', 'administrator'); $this->addACL('com_newsfeeds', 'manage', 'users', 'manager'); $this->addACL('com_templates', 'manage', 'users', 'super administrator'); //$this->addACL( 'com_templates', 'manage', 'user', 'administrator' ) $this->addACL('com_trash', 'manage', 'users', 'administrator'); $this->addACL('com_trash', 'manage', 'users', 'super administrator'); // email block users property $this->addACL('com_users', 'block user', 'users', 'administrator'); $this->addACL('com_users', 'block user', 'users', 'super administrator'); $this->addACL('com_users', 'manage', 'users', 'administrator'); $this->addACL('com_users', 'manage', 'users', 'super administrator'); $this->addACL('com_weblinks', 'manage', 'users', 'super administrator'); $this->addACL('com_weblinks', 'manage', 'users', 'administrator'); $this->addACL('com_weblinks', 'manage', 'users', 'manager'); // email system events $this->addACL('com_users', 'email_events', 'users', 'administrator'); $this->addACL('com_users', 'email_events', 'users', 'super administrator'); $this->addACL('workflow', 'email_events', 'users', 'administrator', null, null); $this->addACL('workflow', 'email_events', 'users', 'super administrator', null, null); // actions $this->addACL('com_content', 'add', 'users', 'author', 'content', 'all'); $this->addACL('com_content', 'add', 'users', 'editor', 'content', 'all'); $this->addACL('com_content', 'add', 'users', 'publisher', 'content', 'all'); $this->addACL('com_content', 'edit', 'users', 'author', 'content', 'own'); $this->addACL('com_content', 'edit', 'users', 'editor', 'content', 'all'); $this->addACL('com_content', 'edit', 'users', 'publisher', 'content', 'all'); $this->addACL('com_content', 'publish', 'users', 'publisher', 'content', 'all'); $this->addACL('com_content', 'add', 'users', 'manager', 'content', 'all'); $this->addACL('com_content', 'edit', 'users', 'manager', 'content', 'all'); $this->addACL('com_content', 'publish', 'users', 'manager', 'content', 'all'); $this->addACL('com_content', 'add', 'users', 'administrator', 'content', 'all'); $this->addACL('com_content', 'edit', 'users', 'administrator', 'content', 'all'); $this->addACL('com_content', 'publish', 'users', 'administrator', 'content', 'all'); $this->addACL('com_content', 'add', 'users', 'super administrator', 'content', 'all'); $this->addACL('com_content', 'edit', 'users', 'super administrator', 'content', 'all'); $this->addACL('com_content', 'publish', 'users', 'super administrator', 'content', 'all'); }