Esempio n. 1
0
 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();
 }
Esempio n. 2
0
 * 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');
Esempio n. 3
0
 /**
  * @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;
 }
Esempio n. 4
0
 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;
 }