* Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ /** * This script saves database information into outputed SQL lines */ require_once dirname(__FILE__) . '/connect.db.inc.php'; // DELETE confidential data echo XDB::format('UPDATE account SET password={?};', '') . PHP_EOL; echo 'DELETE FROM remote;' . PHP_EOL; echo 'DELETE FROM remote_groups;' . PHP_EOL; // Get this data from bdd $iter = XDB::iterRow('SELECT hruid, password FROM account WHERE password != {?}', ''); while (list($hruid, $password) = $iter->next()) { echo XDB::format('UPDATE account SET password = {?} WHERE hruid = {?};', $password, $hruid) . PHP_EOL; } // Save dev's remote sites $remote_cols = array('site', 'privkey', 'label', 'rights'); $remotes = Remote::selectAll(RemoteSelect::groups()); foreach ($remotes as $r) { $query = XDB::format('INSERT INTO remote SET remid = {?}', $r->id()); foreach ($remote_cols as $c) { $query .= XDB::format(', ' . $c . ' = {?}', $r->{$c}()); } echo $query . ';' . PHP_EOL; foreach ($r->groups() as $g) { echo XDB::format('INSERT INTO remote_groups SET remid = {?}, gid = {?};', $r->id(), $g->id()) . PHP_EOL; } }
function handler_admin($page, $id = null, $action = null) { $page->assign('title', "Administration de l'authentification externe"); $page->assign('remoterights_available', implode(',', Remote::availableRights())); // Find remote $remote = null; if ($id == 'new') { $remote = new Remote(); $remote->insert(); } elseif (Remote::isId($id)) { $remote = new Remote($id); // Delete a remote if ($action == 'delete') { $remote->delete(); $remote = null; } } if (!empty($remote)) { $remote->select(RemoteSelect::groups()); if (Env::has('change_remote')) { $remote->site(Env::t('site')); $remote->label(Env::t('label')); $remote->privkey(Env::t('privkey')); $rights = explode(',', Env::t('rights')); foreach ($rights as $k => $v) { $rights[$k] = strtolower(trim($v)); } $rights = array_intersect($rights, Remote::availableRights()); $remote->rights(new PlFlagSet(implode(',', $rights))); $groups = new Collection('Group'); $groups_fields = array('binets', 'frees'); foreach ($groups_fields as $field) { foreach (explode(';', Env::t($field)) as $gid) { $gid = trim($gid); if ($gid) { $groups->add(new Group($gid)); } } } $groups->select(GroupSelect::base()); $remote->groups($groups); } $page->assign('remote', $remote); $page->changeTpl('remote/admin.tpl'); } else { $remotes = Remote::selectAll(RemoteSelect::groups()); $page->assign('remotes', $remotes); $page->changeTpl('remote/list.tpl'); } }