private function __construct() { $this->roleDao = BOL_AuthorizationRoleDao::getInstance(); $this->userRoleDao = BOL_AuthorizationUserRoleDao::getInstance(); $this->actionDao = BOL_AuthorizationActionDao::getInstance(); $this->groupDao = BOL_AuthorizationGroupDao::getInstance(); $this->permissionDao = BOL_AuthorizationPermissionDao::getInstance(); $this->moderatorDao = BOL_AuthorizationModeratorDao::getInstance(); $this->moderatorPermissionDao = BOL_AuthorizationModeratorPermissionDao::getInstance(); $this->groupDaoCache = $this->groupDao->findAll(); foreach ($this->groupDaoCache as $group) { /* @var $group BOL_AuthorizationGroup */ $this->groupCache[$group->name] = $group->id; } $moderatorDaoCache = $this->moderatorDao->findAll(); $this->superModeratorUserId = 0; foreach ($moderatorDaoCache as $moderator) { /* @var $moderator BOL_AuthorizationModerator */ $this->moderatorCache[$moderator->userId] = $moderator->id; if ($this->superModeratorUserId === 0 || (int) $this->moderatorCache[$moderator->userId] < (int) $this->moderatorCache[$this->superModeratorUserId]) { $this->superModeratorUserId = (int) $moderator->userId; } } $moderatorPermissionDaoCache = $this->moderatorPermissionDao->findAll(); foreach ($moderatorPermissionDaoCache as $perm) { /* @var $perm BOL_AuthorizationModeratorPermission */ $this->moderatorPermissionCache[$perm->moderatorId][$perm->groupId] = $perm->id; } $this->actionDaoCache = $this->actionDao->findAll(); foreach ($this->actionDaoCache as $action) { /* @var $action BOL_AuthorizationAction */ $this->actionCache[$action->name][$action->groupId] = $action->id; } $this->userRolesCache = array(); if (OW::getUser()->isAuthenticated()) { $this->userRolesCache[OW::getUser()->getId()] = $this->userRoleDao->getRoleIdList(OW::getUser()->getId()); } $permissionDaoCache = $this->permissionDao->findAll(); foreach ($permissionDaoCache as $permission) { /* @var $permission BOL_AuthorizationPermission */ $this->permissionCache[$permission->actionId][$permission->roleId] = $permission->id; } $this->roleDaoCache = $this->roleDao->findAll(); $this->guestRoleId = $this->getGuestRoleId(); }
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the * following conditions are met: * * - Redistributions of source code must retain the above copyright notice, this list of conditions and * the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and * the following disclaimer in the documentation and/or other materials provided with the distribution. * * - Neither the name of the Oxwall Foundation nor the names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ OW::getDbo()->query("\n CREATE TABLE IF NOT EXISTS `" . OW_DB_PREFIX . "ads_banner` (\n `id` int(11) NOT NULL auto_increment,\n `label` varchar(255) NOT NULL,\n `code` text NOT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); OW::getDbo()->query("\n CREATE TABLE IF NOT EXISTS `" . OW_DB_PREFIX . "ads_banner_location` (\n `id` int(11) NOT NULL auto_increment,\n `bannerId` int(11) NOT NULL,\n `location` char(3) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `bannerId` (`bannerId`)\n) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5"); OW::getDbo()->query("\n CREATE TABLE IF NOT EXISTS `" . OW_DB_PREFIX . "ads_banner_position` (\n `id` int(11) NOT NULL auto_increment,\n `bannerId` int(11) NOT NULL,\n `position` enum('top','sidebar','bottom') NOT NULL,\n `pluginKey` varchar(255) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `bannerId` (`bannerId`)\n) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); $authorization = OW::getAuthorization(); $groupName = 'ads'; $authorization->addGroup($groupName); $authorization->addAction($groupName, 'hide_ads', true); $action = BOL_AuthorizationService::getInstance()->findAction('ads', 'hide_ads'); BOL_AuthorizationPermissionDao::getInstance()->deleteByActionId($action->getId()); OW::getPluginManager()->addPluginSettingsRouteName('ads', 'ads.admin_settings_index'); $path = OW::getPluginManager()->getPlugin('ads')->getRootDir() . 'langs.zip'; OW::getLanguage()->importPluginLangs($path, 'ads');
/** * @param $actionId * @return bool */ public function actionCanBePurchased($actionId) { if (!$actionId) { return false; } $memberships = $this->getTypeList(); if (!$memberships) { return false; } foreach ($memberships as $ms) { /** @var MEMBERSHIP_BOL_MembershipType $ms */ $perm = BOL_AuthorizationPermissionDao::getInstance()->findByRoleIdAndActionId($ms->roleId, $actionId); if ($perm) { return true; } } return false; }
private function isAuthorizedForRole() { $groupId = BOL_AuthorizationService::getInstance()->findGroupIdByName('photo'); $photoAction = BOL_AuthorizationActionDao::getInstance()->findAction('view', $groupId); foreach (BOL_AuthorizationService::getInstance()->getRoleList() as $role) { if (BOL_AuthorizationPermissionDao::getInstance()->findByRoleIdAndActionId($role->id, $photoAction->id) !== null) { return true; } } return false; }