X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fadmin.php;h=38d3f65a3d3b0e698fd440b2e1fed0b7ad99f4e8;hb=1dd218522cea6ae08998b0ca107c8fec608ddce8;hp=c9f55b4526018b195bb0ad699eb08271f366d9cd;hpb=7f7b00425f9cb2dc2a611cd1ca985813893d5bfe;p=platal.git diff --git a/modules/admin.php b/modules/admin.php index c9f55b4..38d3f65 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -42,7 +42,7 @@ class AdminModule extends PLModule 'admin/skins' => $this->make_hook('skins', AUTH_MDP, 'admin'), 'admin/user' => $this->make_hook('user', AUTH_MDP, 'admin'), 'admin/add_accounts' => $this->make_hook('add_accounts', AUTH_MDP, 'admin'), - 'admin/validate' => $this->make_hook('validate', AUTH_MDP, 'admin'), + 'admin/validate' => $this->make_hook('validate', AUTH_MDP, 'admin,edit_directory'), 'admin/validate/answers' => $this->make_hook('validate_answers', AUTH_MDP, 'admin'), 'admin/wiki' => $this->make_hook('wiki', AUTH_MDP, 'admin'), 'admin/ipwatch' => $this->make_hook('ipwatch', AUTH_MDP, 'admin'), @@ -50,7 +50,8 @@ class AdminModule extends PLModule 'admin/accounts' => $this->make_hook('accounts', AUTH_MDP, 'admin'), 'admin/account/watch' => $this->make_hook('account_watch', AUTH_MDP, 'admin'), 'admin/account/types' => $this->make_hook('account_types', AUTH_MDP, 'admin'), - 'admin/jobs' => $this->make_hook('jobs', AUTH_MDP, 'admin'), + 'admin/jobs' => $this->make_hook('jobs', AUTH_MDP, 'admin,edit_directory'), + 'admin/profile' => $this->make_hook('profile', AUTH_MDP, 'admin,edit_directory') ); } @@ -1125,6 +1126,7 @@ class AdminModule extends PLModule global $globals; $globals->updateNbValid(); $page->assign('vit', Validate::iterate()); + $page->assign('isAdmin', S::admin()); } function handler_validate_answers(&$page, $action = 'list', $id = null) @@ -1539,6 +1541,37 @@ class AdminModule extends PLModule } } } + + function handler_profile(&$page) + { + $page->changeTpl('admin/profile.tpl'); + + if (Post::has('checked')) { + S::assert_xsrf_token(); + $res = XDB::iterator('SELECT DISTINCT(pm.pid), pd.public_name + FROM profile_modifications AS pm + INNER JOIN profile_display AS pd ON (pm.pid = pd.pid) + WHERE pm.type = \'self\''); + + while ($profile = $res->next()) { + if (Post::has('checked_' . $profile['pid'])) { + XDB::execute('DELETE FROM profile_modifications + WHERE type = \'self\' AND pid = {?}', $profile['pid']); + + $page->trigSuccess('Profil de ' . $profile['public_name'] . ' vérifié.'); + } + } + } + + $res = XDB::iterator('SELECT p.hrpid, pm.pid, pd.directory_name, GROUP_CONCAT(pm.field SEPARATOR \', \') AS field + FROM profile_modifications AS pm + INNER JOIN profiles AS p ON (pm.pid = p.pid) + INNER JOIN profile_display AS pd ON (pm.pid = pd.pid) + WHERE pm.type = \'self\' + GROUP BY pd.directory_name + ORDER BY pd.directory_name'); + $page->assign('updates', $res); + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: