function saverights() { $rep = $this->getResponse('redirect'); $rights = $this->param('rights', array()); foreach (jAcl2DbUserGroup::getGroupList() as $grp) { $id = intval($grp->id_aclgrp); jAcl2DbManager::setRightsOnGroup($id, isset($rights[$id]) ? $rights[$id] : array()); } jAcl2DbManager::setRightsOnGroup(0, isset($rights[0]) ? $rights[0] : array()); $rep->action = 'jacl2_admin~groups:index'; return $rep; }
function install() { $lizmapConfFile = jApp::configPath('lizmapConfig.ini.php'); if (!file_exists($lizmapConfFile)) { $lizmapConfFileDist = jApp::configPath('lizmapConfig.ini.php.dist'); if (file_exists($lizmapConfFileDist)) { copy($lizmapConfFileDist, $lizmapConfFile); } else { $this->copyFile('config/lizmapConfig.ini.php', $lizmapConfFile); } } $localConfig = jApp::configPath('localconfig.ini.php'); if (!file_exists($localConfig)) { $localConfigDist = jApp::configPath('localconfig.ini.php.dist'); if (file_exists($localConfigDist)) { copy($localConfigDist, $localConfig); } else { file_put_contents($localConfig, ';<' . '?php die(\'\');?' . '>'); } } $ini = new jIniFileModifier($localConfig); $ini->setValue('lizmap', 'lizmapConfig.ini.php', 'coordplugins'); $ini->save(); if ($this->firstDbExec()) { // Add log table $this->useDbProfile('lizlog'); $this->execSQLScript('sql/lizlog'); // Add geobookmark table $this->useDbProfile('jauth'); $this->execSQLScript('sql/lizgeobookmark'); } if ($this->firstExec('acl2') && $this->getParameter('demo')) { $this->useDbProfile('auth'); // create group jAcl2DbUserGroup::createGroup('lizadmins'); jAcl2DbUserGroup::createGroup('Intranet demos group', 'intranet'); // create user in jAuth require_once JELIX_LIB_PATH . 'auth/jAuth.class.php'; require_once JELIX_LIB_PATH . 'plugins/auth/db/db.auth.php'; $authconfig = $this->config->getValue('auth', 'coordplugins'); $confIni = parse_ini_file(jApp::configPath($authconfig), true); $authConfig = jAuth::loadConfig($confIni); $driver = new dbAuthDriver($authConfig['Db']); $passwordHash1 = $driver->cryptPassword('lizadmin'); $passwordHash2 = $driver->cryptPassword('logintranet'); $cn = $this->dbConnection(); $cn->exec("INSERT INTO " . $cn->prefixTable('jlx_user') . " (usr_login, usr_password, usr_email ) VALUES\n ('lizadmin', " . $cn->quote($passwordHash1) . " , '*****@*****.**')"); $cn->exec("INSERT INTO " . $cn->prefixTable('jlx_user') . " (usr_login, usr_password, usr_email ) VALUES\n ('logintranet', " . $cn->quote($passwordHash2) . " , '*****@*****.**')"); // declare users in jAcl2 jAcl2DbUserGroup::createUser('lizadmin', true); jAcl2DbUserGroup::createUser('logintranet', true); jAcl2DbUserGroup::addUserToGroup('lizadmin', 'lizadmins'); jAcl2DbUserGroup::addUserToGroup('logintranet', 'intranet'); jAcl2DbManager::setRightsOnGroup('lizadmins', array('lizmap.admin.access' => true, 'lizmap.admin.services.update' => true, 'lizmap.admin.repositories.create' => true, 'lizmap.admin.repositories.delete' => true, 'lizmap.admin.repositories.update' => true, 'lizmap.admin.repositories.view' => true, 'lizmap.admin.services.view' => true)); // admins jAcl2DbManager::addRight('admins', 'lizmap.tools.edition.use', 'intranet'); jAcl2DbManager::addRight('admins', 'lizmap.repositories.view', 'intranet'); jAcl2DbManager::addRight('admins', 'lizmap.tools.loginFilteredLayers.override', 'intranet'); jAcl2DbManager::addRight('admins', 'lizmap.tools.displayGetCapabilitiesLinks', 'intranet'); jAcl2DbManager::addRight('admins', 'lizmap.tools.edition.use', 'montpellier'); jAcl2DbManager::addRight('admins', 'lizmap.repositories.view', 'montpellier'); jAcl2DbManager::addRight('admins', 'lizmap.tools.loginFilteredLayers.override', 'montpellier'); jAcl2DbManager::addRight('admins', 'lizmap.tools.displayGetCapabilitiesLinks', 'montpellier'); // lizadmins jAcl2DbManager::addRight('lizadmins', 'lizmap.tools.edition.use', 'intranet'); jAcl2DbManager::addRight('lizadmins', 'lizmap.repositories.view', 'intranet'); jAcl2DbManager::addRight('lizadmins', 'lizmap.tools.loginFilteredLayers.override', 'intranet'); jAcl2DbManager::addRight('lizadmins', 'lizmap.tools.displayGetCapabilitiesLinks', 'intranet'); jAcl2DbManager::addRight('lizadmins', 'lizmap.tools.edition.use', 'montpellier'); jAcl2DbManager::addRight('lizadmins', 'lizmap.repositories.view', 'montpellier'); jAcl2DbManager::addRight('lizadmins', 'lizmap.tools.loginFilteredLayers.override', 'montpellier'); jAcl2DbManager::addRight('lizadmins', 'lizmap.tools.displayGetCapabilitiesLinks', 'montpellier'); // intranet jAcl2DbManager::addRight('intranet', 'lizmap.tools.edition.use', 'intranet'); jAcl2DbManager::addRight('intranet', 'lizmap.repositories.view', 'intranet'); jAcl2DbManager::addRight('intranet', 'lizmap.tools.loginFilteredLayers.override', 'intranet'); jAcl2DbManager::addRight('intranet', 'lizmap.tools.displayGetCapabilitiesLinks', 'intranet'); jAcl2DbManager::addRight('intranet', 'lizmap.tools.edition.use', 'montpellier'); jAcl2DbManager::addRight('intranet', 'lizmap.repositories.view', 'montpellier'); jAcl2DbManager::addRight('intranet', 'lizmap.tools.loginFilteredLayers.override', 'montpellier'); jAcl2DbManager::addRight('intranet', 'lizmap.tools.displayGetCapabilitiesLinks', 'montpellier'); // anonymous jAcl2DbManager::addRight('__anonymous', 'lizmap.tools.edition.use', 'montpellier'); jAcl2DbManager::addRight('__anonymous', 'lizmap.repositories.view', 'montpellier'); jAcl2DbManager::addRight('__anonymous', 'lizmap.tools.loginFilteredLayers.override', 'montpellier'); jAcl2DbManager::addRight('__anonymous', 'lizmap.tools.displayGetCapabilitiesLinks', 'montpellier'); // declare the repositories of demo in the configuration $ini = new jIniFileModifier($lizmapConfFile); $ini->setValues(array('label' => 'LizMap Demo', 'path' => '../install/qgis/', 'allowUserDefinedThemes' => 1), 'repository:montpellier'); $ini->setValues(array('label' => 'Lizmap Demo - Intranet', 'path' => '../install/qgis_intranet/', 'allowUserDefinedThemes' => ''), 'repository:intranet'); $ini->setValue('defaultRepository', 'montpellier', 'services'); $ini->save(); } }
function saverights() { $rep = $this->getResponse('redirect'); $rights = $this->param('rights', array()); foreach (jAcl2DbUserGroup::getGroupList() as $grp) { $id = $grp->id_aclgrp; jAcl2DbManager::setRightsOnGroup($id, isset($rights[$id]) ? $rights[$id] : array()); } jAcl2DbManager::setRightsOnGroup('__anonymous', isset($rights['__anonymous']) ? $rights['__anonymous'] : array()); jMessage::add(jLocale::get('acl2.message.group.rights.ok'), 'ok'); $rep->action = 'jacl2db_admin~groups:rights'; return $rep; }
function saverights() { $rep = $this->getResponse('redirect'); $login = $this->param('user'); $rights = $this->param('rights', array()); if ($login == '') { $rep->action = 'jacl2db_admin~users:index'; return $rep; } $rep->action = 'jacl2db_admin~users:rights'; $rep->params = array('user' => $login); $dao = jDao::get('jacl2db~jacl2groupsofuser', 'jacl2_profile'); $grp = $dao->getPrivateGroup($login); jAcl2DbManager::setRightsOnGroup($grp->id_aclgrp, $rights); jMessage::add(jLocale::get('acl2.message.user.rights.ok'), 'ok'); return $rep; }
public function testSetNewRightsOnGroup() { $this->emptyTable('jacl2_user_group'); $this->emptyTable('jacl2_rights'); $this->emptyTable('jacl2_subject'); $groups = array(array('id_aclgrp' => 'group1', 'name' => 'group1', 'grouptype' => 0, 'ownerlogin' => null), array('id_aclgrp' => 'group2', 'name' => 'group2', 'grouptype' => 0, 'ownerlogin' => null)); $this->insertRecordsIntoTable('jacl2_group', array('id_aclgrp', 'name', 'grouptype', 'ownerlogin'), $groups, true); jAcl2DbManager::addSubject('super.cms.list', 'cms~rights.super.cms.list'); jAcl2DbManager::addSubject('super.cms.update', 'cms~rights.super.cms.update'); jAcl2DbManager::addSubject('super.cms.create', 'cms~rights.super.cms.update'); jAcl2DbManager::addSubject('super.cms.view', 'cms~rights.super.cms.update'); jAcl2DbManager::addSubject('super.cms.delete', 'cms~rights.super.cms.delete'); $rights = array(); $this->assertTableContainsRecords('jacl2_rights', $rights); // rights for group 1 $newRights = array('super.cms.list' => 'y', 'super.cms.create' => 'y'); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.create', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // rights for group 2 (we won't modify them, we add them to verify that changes on rights of group1 // won't changed rights of group 2) $newRights = array('super.cms.list' => 'y', 'super.cms.view' => 'y'); jAcl2DbManager::setRightsOnGroup('group2', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.create', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // add a right for group 1 $newRights = array('super.cms.list' => 'y', 'super.cms.create' => 'y', 'super.cms.delete' => 'y'); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.create', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.delete', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // remove rights for group 1 $newRights = array('super.cms.list' => 'y', 'super.cms.create' => ''); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // new rights for group 1, by deleting existing one and adding new ones $newRights = array('super.cms.create' => 'y', 'super.cms.update' => 'y'); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.update', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.create', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // cancel a right for group 1 $newRights = array('super.cms.create' => 'y', 'super.cms.update' => 'n'); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.update', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '1'), array('id_aclsbj' => 'super.cms.create', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // changed a canceled right to an approuve right for group 1 $newRights = array('super.cms.create' => 'y', 'super.cms.update' => 'y'); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.update', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.create', 'id_aclgrp' => 'group1', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); // remove all rights for group 1 $newRights = array(); jAcl2DbManager::setRightsOnGroup('group1', $newRights); $rights = array(array('id_aclsbj' => 'super.cms.list', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0'), array('id_aclsbj' => 'super.cms.view', 'id_aclgrp' => 'group2', 'id_aclres' => null, 'canceled' => '0')); $this->assertTableContainsRecords('jacl2_rights', $rights); }
function saverights() { $rep = $this->getResponse('redirect'); $login = $this->param('user'); $rights = $this->param('rights', array()); if ($login == '') { $rep->action = 'jacl2_admin~users:index'; return $rep; } $rep->action = 'jacl2_admin~users:rights'; $rep->params = array('user' => $login); $dao = jDao::get('jelix~jacl2groupsofuser', jAcl2Db::getProfil()); $grp = $dao->getPrivateGroup($login); jAcl2DbManager::setRightsOnGroup($grp->id_aclgrp, $rights); return $rep; }
function saveconfig() { $resp = $this->getResponse('redirect'); $resp->action = 'hfnuadmin~default:config'; $form = jForms::fill('hfnuadmin~config'); if (!$form->check()) { return $resp; } $defaultConfig = new jIniFileModifier(jApp::configPath('defaultconfig.ini.php')); $p = jAcl2Db::getProfile(); //if we want to allow the anonymous users on the forum : if ($form->getData('anonymous_post_authorized')) { $rights = array('hfnu.forum.list' => 'on', 'hfnu.forum.view' => 'on', 'hfnu.posts.list' => 'on', 'hfnu.posts.view' => 'on', 'hfnu.posts.rss' => 'on', 'hfnu.posts.reply' => 'on', 'hfnu.posts.create' => 'on', 'hfnu.search' => 'on'); jAcl2DbManager::setRightsOnGroup('__anonymous', $rights); } else { jAcl2DbManager::setRightsOnGroup('__anonymous', array()); } $defaultConfig->setValue('title', htmlentities($this->param('title')), 'havefnubb'); $defaultConfig->setValue('description', htmlentities($form->getData('description')), 'havefnubb'); $defaultConfig->setValue('webmasterEmail', $this->param('webmaster_email'), 'mailer'); $defaultConfig->setValue('rules', str_replace('"', '', $form->getData('rules')), 'havefnubb'); $defaultConfig->setValue('admin_email', $form->getData('admin_email'), 'havefnubb'); $defaultConfig->setValue('posts_per_page', $form->getData('posts_per_page'), 'havefnubb'); $defaultConfig->setValue('replies_per_page', $form->getData('replies_per_page'), 'havefnubb'); $defaultConfig->setValue('members_per_page', $form->getData('members_per_page'), 'havefnubb'); $defaultConfig->setValue('stats_nb_of_lastpost', $form->getData('stats_nb_of_lastpost'), 'havefnubb'); $defaultConfig->setValue('post_max_size', $form->getData('post_max_size'), 'havefnubb'); $defaultConfig->setValue('avatar_max_width', $form->getData('avatar_max_width'), 'havefnubb'); $defaultConfig->setValue('avatar_max_height', $form->getData('avatar_max_height'), 'havefnubb'); $defaultConfig->setValue('important_nb_replies', $form->getData('important_nb_replies'), 'havefnubb'); $defaultConfig->setValue('important_nb_views', $form->getData('important_nb_views'), 'havefnubb'); $defaultConfig->setValue('anonymous_post_authorized', $form->getData('anonymous_post_authorized'), 'havefnubb'); $defaultConfig->setValue('twitter', $form->getData('social_network_twitter'), 'social_networks'); $defaultConfig->setValue('digg', $form->getData('social_network_digg'), 'social_networks'); $defaultConfig->setValue('delicious', $form->getData('social_network_delicious'), 'social_networks'); $defaultConfig->setValue('facebook', $form->getData('social_network_facebook'), 'social_networks'); $defaultConfig->setValue('reddit', $form->getData('social_network_reddit'), 'social_networks'); $defaultConfig->setValue('netvibes', $form->getData('social_network_netvibes'), 'social_networks'); $tz = DateTimeZone::listIdentifiers(); $defaultConfig->setValue('timeZone', $tz[$form->getData('timezone')]); $defaultConfig->save(); $floodConfig = new jIniFileModifier(jApp::configPath('havefnubb/flood.coord.ini.php')); $floodConfig->setValue('only_same_ip', $form->getData('only_same_ip')); $floodConfig->setValue('elapsed_time_between_two_post', $form->getData('elapsed_time_between_two_post')); $floodConfig->save(); jForms::destroy('hfnuadmin~config'); jMessage::add(jLocale::get('hfnuadmin~config.config.modified'), 'ok'); return $resp; }