%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/11584/cwd/html/old/plugins/kunena/comprofiler/ |
Upload File : |
<?php /** * Kunena Plugin * @package Kunena.Plugins * @subpackage Comprofiler * * @copyright (C) 2008 - 2014 Kunena Team. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.kunena.org **/ defined ( '_JEXEC' ) or die (); require_once dirname(__FILE__) . '/integration.php'; /** * Kunena Access Control for CommunityBuilder */ class KunenaAccessComprofiler { protected $categories = false; protected $groups = false; protected $tree = array(); protected $params = null; public function __construct($params) { $this->params = $params; } /** * Get list of supported access types. * * List all access types you want to handle. All names must be less than 20 characters. * * @return array Supported access types. */ public function getAccessTypes() { static $accesstypes = array('communitybuilder'); return $accesstypes; } /** * Get group name in selected access type. * * @param string $accesstype Access type. * @param int $id Group id. * @return string|null */ public function getGroupName($accesstype, $id=null) { if ($accesstype == 'communitybuilder') { $this->loadGroups(); if ($id !== null) { return isset($this->groups[$id]) ? $this->groups[$id]->name : $id; } return $this->groups; } return null; } /** * Get HTML list of the available groups * * @param string $accesstype Access type. * @param int $category Group id. * @return array */ public function getAccessOptions($accesstype, $category) { $html = array(); if (!$accesstype || $accesstype == 'communitybuilder') { $this->loadCategories(); $this->loadGroups(); $options = array(); $selected = 'communitybuilder' == $category->accesstype && isset($this->groups[$category->access]) ? $category->access : null; foreach ($this->tree as $item) { if (!$selected && is_numeric($item->id)) $selected = $item->id; $options[] = JHtml::_ ( 'select.option', $item->id, str_repeat('- ', $item->level).$item->name, 'value', 'text', !is_numeric($item->id)); } if (!$options) { $selected = 0; $options[] = JHtml::_ ( 'select.option', 0, JText::_('PLG_KUNENA_COMPROFILER_NO_GROUPS_FOUND'), 'value', 'text'); } $html ['communitybuilder']['access'] = array( 'title' => JText::_('PLG_KUNENA_COMPROFILER_ACCESS_GROUP_TITLE'), 'desc' => JText::_('PLG_KUNENA_COMPROFILER_ACCESS_GROUP_DESC'), 'input' => JHtml::_ ( 'select.genericlist', $options, 'access-communitybuilder', 'class="inputbox" size="10"', 'value', 'text', $selected ) ); } return $html; } /** * Load moderators and administrators for listed categories. * * This function is used to add category administrators and moderators to listed categories. In addition * integration can also add global administrators / moderators (catid=0). * * Results may be cached. * * @param array $categories List of categories, null = all. * * @return array(array('user_id'=>u, 'category_id'=>c, 'role'=>r)) */ public function loadCategoryRoles(array $categories = null) { $roles = array(); $params = array ('categories'=>$categories, 'roles'=>&$roles); KunenaIntegrationComprofiler::trigger ( 'loadCategoryRoles', $params ); return $roles; } /** * Authorise list of categories. * * Function accepts array of id indexed KunenaForumCategory objects and removes unauthorised * categories from the list. * * Results for the current user are saved into session. * * @param int $userid User who needs the authorisation (null=current user, 0=visitor). * @param array $categories List of categories in access type. * * @return array, where category ids are in the keys. */ public function authoriseCategories($userid, array &$categories) { $allowed = '0'; $params = array ($userid, &$allowed); KunenaIntegrationComprofiler::trigger ( 'getAllowedForumsRead', $params ); if (is_string($allowed)) $allowed = explode(',', $allowed); $allowed = (array) array_flip($allowed); foreach ($allowed as $id=>&$value) $value = $id; return $allowed; } /** * Authorise list of userids to topic or category. * * @param mixed $topic Category or topic. * @param array $userids list(allow, deny). * @return array */ public function authoriseUsers(KunenaDatabaseObject $topic, array &$userids) { $allow = $deny = array(); if (empty($userids)) { return array($allow, $deny); } $category = $topic->getCategory(); if ($category->accesstype == 'communitybuilder') { $params = array ('category'=>$category, 'topic'=>$topic, 'userids'=>$userids, 'allow'=>&$allow, 'deny'=>&$deny); KunenaIntegrationComprofiler::trigger ( 'authoriseUsers', $params ); } return array($allow, $deny); } protected function loadCategories() { if ($this->categories === false) { $this->categories = array(); $params = array ('categories'=>&$this->categories,'groups'=>$this->groups); KunenaIntegrationComprofiler::trigger ( 'loadCategories', $params ); $this->tree = new KunenaTree($this->categories); if ($this->groups !== false) $this->tree->add($this->groups); } } protected function loadGroups() { if ($this->groups === false) { $this->groups = array(); $params = array ('groups'=>&$this->groups,'categories'=>$this->categories); KunenaIntegrationComprofiler::trigger ( 'loadGroups', $params ); if ($this->categories !== false) $this->tree->add($this->groups); } } }