/** * Perform plugin-specific management functions. */ function plugin($args) { $category = array_shift($args); $plugin = array_shift($args); $verb = array_shift($args); parent::validate(); $plugins =& PluginRegistry::loadCategory($category); if (!isset($plugins[$plugin]) || !$plugins[$plugin]->manage($verb, $args)) { Request::redirect(null, null, 'plugins'); } }
/** * The site setting option 'preventManagerPluginManagement' must not be set for * journal managers to be able to manage plugins. * @param $request PKPRequest */ function validate($request) { parent::validate(); if (!Validation::isSiteAdmin()) { $site =& $request->getSite(); $preventManagerPluginManagement = $site->getSetting('preventManagerPluginManagement'); if ($preventManagerPluginManagement) { $request->redirect(null, 'manager', 'plugins'); } } }
/** * Validate that user has permissions to manage e-mail templates. * Redirects to user index page if not properly authenticated. * @param $request PKPRequest */ function validate(&$request) { parent::validate(); $schedConf =& $request->getSchedConf(); // If the user is a Conference Manager, but has specified a scheduled conference, // redirect so no scheduled conference is present (otherwise they would end up managing // scheduled conference e-mails.) if ($schedConf && !Validation::isConferenceManager()) { $request->redirect(null, 'index', $request->getRequestedPage(), $request->getRequestedOp()); } return true; }
function reloadLocalizedDefaultSettings() { // make sure the locale is valid $locale = Request::getUserVar('localeToLoad'); if (!Locale::isLocaleValid($locale)) { Request::redirect(null, null, 'languages'); } parent::validate(); parent::setupTemplate(true); $journal =& Request::getJournal(); $journalSettingsDao =& DAORegistry::getDAO('JournalSettingsDAO'); $journalSettingsDao->reloadLocalizedDefaultSettings($journal->getJournalId(), 'registry/journalSettings.xml', array('indexUrl' => Request::getIndexUrl(), 'journalPath' => $journal->getData('path'), 'primaryLocale' => $journal->getPrimaryLocale(), 'journalName' => $journal->getTitle($journal->getPrimaryLocale())), $locale); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign(array('currentUrl' => Request::url(null, null, 'languages'), 'pageTitle' => 'common.languages', 'message' => 'common.changesSaved', 'backLink' => Request::url(null, Request::getRequestedPage()), 'backLinkLabel' => 'manager.journalManagement')); $templateMgr->display('common/message.tpl'); }
/** * Save changes to language settings. */ function saveLanguageSettings() { parent::validate(); parent::setupTemplate(true); import('manager.form.LanguageSettingsForm'); $settingsForm =& new LanguageSettingsForm(); $settingsForm->readInputData(); if ($settingsForm->validate()) { $settingsForm->execute(); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign(array('currentUrl' => Request::url(null, null, 'languages'), 'pageTitle' => 'common.languages', 'message' => 'common.changesSaved', 'backLink' => Request::url(null, Request::getRequestedPage()), 'backLinkLabel' => 'manager.journalManagement')); $templateMgr->display('common/message.tpl'); } else { $settingsForm->display(); } }
function importexport($args) { parent::validate(); parent::setupTemplate(true); PluginRegistry::loadCategory(IMPORTEXPORT_PLUGIN_CATEGORY); $templateMgr =& TemplateManager::getManager(); if (array_shift($args) === 'plugin') { $pluginName = array_shift($args); $plugin =& PluginRegistry::getPlugin(IMPORTEXPORT_PLUGIN_CATEGORY, $pluginName); if ($plugin) { return $plugin->display($args); } } $templateMgr->assign_by_ref('plugins', PluginRegistry::getPlugins(IMPORTEXPORT_PLUGIN_CATEGORY)); $templateMgr->assign('helpTopicId', 'journal.managementPages.importExport'); $templateMgr->display('manager/importexport/plugins.tpl'); }
/** * Send an email to a user or group of users. */ function email($args) { parent::validate(); ManagerHandler::setupTemplate(true); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('helpTopicId', 'journal.users.emailUsers'); $userDao =& DAORegistry::getDAO('UserDAO'); $site =& Request::getSite(); $journal =& Request::getJournal(); $user =& Request::getUser(); import('mail.MailTemplate'); $email =& new MailTemplate(Request::getUserVar('template'), Request::getUserVar('locale')); if (Request::getUserVar('send') && !$email->hasErrors()) { $email->send(); Request::redirect(null, Request::getRequestedPage()); } else { $email->assignParams(); // FIXME Forces default parameters to be assigned (should do this automatically in MailTemplate?) if (!Request::getUserVar('continued')) { if (($groupId = Request::getUserVar('toGroup')) != '') { // Special case for emailing entire groups: // Check for a group ID and add recipients. $groupDao =& DAORegistry::getDAO('GroupDAO'); $group =& $groupDao->getGroup($groupId); if ($group && $group->getJournalId() == $journal->getJournalId()) { $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO'); $memberships =& $groupMembershipDao->getMemberships($group->getGroupId()); $memberships =& $memberships->toArray(); foreach ($memberships as $membership) { $user =& $membership->getUser(); $email->addRecipient($user->getEmail(), $user->getFullName()); } } } if (count($email->getRecipients()) == 0) { $email->addRecipient($user->getEmail(), $user->getFullName()); } } $email->displayEditForm(Request::url(null, null, 'email'), array(), 'manager/people/email.tpl'); } }
/** * Constructor */ function PluginHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function ManagerPaymentHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function PeopleHandler() { parent::ManagerHandler(); $this->addRoleAssignment(ROLE_ID_PRESS_MANAGER, array('people', 'enrollSearch', 'showNoRole', 'enroll', 'unEnroll', 'createUser', 'suggestUsername', 'editUser', 'mergeUsers', 'disableUser', 'enableUser', 'removeUser', 'updateUser', 'userProfile')); }
function setupTemplate($subclass = false, $reviewForm = null) { parent::setupTemplate(true); if ($subclass) { $templateMgr =& TemplateManager::getManager(); $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'reviewForms'), 'manager.reviewForms')); } if ($reviewForm) { $templateMgr->append('pageHierarchy', array(Request::url(null, 'manager', 'editReviewForm', $reviewForm->getReviewFormId()), $reviewForm->getReviewFormTitle(), true)); } }
/** * Constructor **/ function ApprovalNoticesHandler() { parent::ManagerHandler(); $this->approvalNoticeDao =& DAORegistry::getDAO('ApprovalNoticeDAO'); }
/** * Set up the template with breadcrumbs etc. * @param $request PKPRequest * @param $subclass boolean */ function setupTemplate(&$request, $subclass = false) { parent::setupTemplate(true); if ($subclass) { $templateMgr =& TemplateManager::getManager(); $templateMgr->append('pageHierarchy', array($request->url(null, 'manager', 'announcements'), 'manager.announcements')); } }
function fileDelete($args) { parent::validate(); FilesHandler::parseDirArg($args, $currentDir, $parentDir); $currentPath = FilesHandler::getRealFilesDir($currentDir); import('file.FileManager'); $fileMgr =& new FileManager(); if (@is_file($currentPath)) { $fileMgr->deleteFile($currentPath); } else { // TODO Use recursive delete (rmtree) instead? @$fileMgr->rmdir($currentPath); } Request::redirect(null, null, 'files', explode('/', $parentDir)); }
function setupTemplate($request, $subclass = false) { parent::setupTemplate($request, true); if ($subclass) { $templateMgr =& TemplateManager::getManager($request); $templateMgr->append('pageHierarchy', array($request->url(null, null, 'manager', 'registration'), 'manager.registration')); } }
/** * Constructor **/ function TimelineHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function JournalLanguagesHandler() { parent::ManagerHandler(); }
function report($args) { parent::validate(); $journal =& Request::getJournal(); $pluginName = array_shift($args); $reportPlugins =& PluginRegistry::loadCategory('reports'); if ($pluginName == '' || !isset($reportPlugins[$pluginName])) { Request::redirect(null, null, 'statistics'); } $plugin =& $reportPlugins[$pluginName]; $plugin->display($args); }
/** * Constructor */ function FilesHandler() { parent::ManagerHandler(); }
function downloadLayoutTemplate($args) { parent::validate(); $journal =& Request::getJournal(); $templates = $journal->getSetting('templates'); import('file.JournalFileManager'); $journalFileManager =& new JournalFileManager($journal); $templateId = (int) array_shift($args); if ($templateId >= count($templates) || $templateId < 0) { Request::redirect(null, null, 'setup'); } $template =& $templates[$templateId]; $filename = "template-{$templateId}." . $journalFileManager->parseFileExtension($template['originalFilename']); $journalFileManager->downloadFile($filename, $template['fileType']); }
/** * Constructor */ function __construct() { parent::__construct(); }
/** * Validate the request. If a group ID is supplied, the group object * will be fetched and validated against the current journal. If, * additionally, the user ID is supplied, the user and membership * objects will be validated and fetched. * @param $groupId int optional * @param $userId int optional * @param $fetchMembership boolean Whether or not to fetch membership object as last element of return array, redirecting if it doesn't exist; default false * @return array [$journal] iff $groupId is null, [$journal, $group] iff $userId is null and $groupId is supplied, and [$journal, $group, $user] iff $userId and $groupId are both supplied. $fetchMembership===true will append membership info to the last case, redirecting if it doesn't exist. */ function validate($groupId = null, $userId = null, $fetchMembership = false) { parent::validate(); $journal =& Request::getJournal(); $passedValidation = true; if ($groupId !== null) { $groupDao =& DAORegistry::getDAO('GroupDAO'); $group =& $groupDao->getGroup($groupId, ASSOC_TYPE_JOURNAL, $journal->getId()); if (!$group) { $passedValidation = false; } else { $this->group =& $group; } if ($userId !== null) { $userDao =& DAORegistry::getDAO('UserDAO'); $user =& $userDao->getUser($userId); if (!$user) { $passedValidation = false; } else { $this->user =& $user; } if ($fetchMembership === true) { $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO'); $groupMembership =& $groupMembershipDao->getMembership($groupId, $userId); if (!$groupMembership) { $validationPassed = false; } else { $this->groupMembership =& $groupMembership; } } } } if (!$passedValidation) { Request::redirect(null, null, 'groups'); } return true; }
/** * Constructor **/ function ManagerProgramHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function ManagerLocationHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function StatisticsHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function SystemHandler() { parent::ManagerHandler(); $this->addRoleAssignment(ROLE_ID_PRESS_MANAGER, array('system', 'languages', 'preparedEmails', 'reviewForms', 'readingTools', 'payments', 'plugins', 'archiving')); }
/** * Validate the request. If a group ID is supplied, the group object * will be fetched and validated against the current journal. If, * additionally, the user ID is supplied, the user and membership * objects will be validated and fetched. * @param $groupId int optional * @param $userId int optional * @param $fetchMembership boolean Whether or not to fetch membership object as last element of return array, redirecting if it doesn't exist; default false * @return array [$journal] iff $groupId is null, [$journal, $group] iff $userId is null and $groupId is supplied, and [$journal, $group, $user] iff $userId and $groupId are both supplied. $fetchMembership===true will append membership info to the last case, redirecting if it doesn't exist. */ function validate($groupId = null, $userId = null, $fetchMembership = false) { parent::validate(); $journal =& Request::getJournal(); $returner = array(&$journal); $passedValidation = true; if ($groupId !== null) { $groupDao =& DAORegistry::getDAO('GroupDAO'); $group =& $groupDao->getGroup($groupId); if (!$group || $group->getJournalId() !== $journal->getJournalId()) { $passedValidation = false; } else { $returner[] =& $group; } if ($userId !== null) { $userDao =& DAORegistry::getDAO('UserDAO'); $user =& $userDao->getUser($userId); if (!$user) { $passedValidation = false; } else { $returner[] =& $user; } if ($fetchMembership === true) { $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO'); $groupMembership =& $groupMembershipDao->getMembership($groupId, $userId); if (!$groupMembership) { $validationPassed = false; } else { $returner[] =& $groupMembership; } } } } if (!$passedValidation) { Request::redirect(null, null, 'groups'); } return $returner; }
/** * Constructor **/ function ManagerSchedConfHandler() { parent::ManagerHandler(); }
/** * Constructor **/ function PeopleHandler() { parent::ManagerHandler(); }
/** * Show users with no role. */ function showNoRole() { $this->validate(); $userDao =& DAORegistry::getDAO('UserDAO'); $templateMgr =& TemplateManager::getManager(); parent::setupTemplate(true); $rangeInfo = $this->getRangeInfo('users'); $users =& $userDao->getUsersWithNoRole(true, $rangeInfo); $templateMgr->assign('omitSearch', true); $templateMgr->assign_by_ref('users', $users); $templateMgr->assign_by_ref('thisUser', Request::getUser()); $templateMgr->assign('helpTopicId', 'journal.users.index'); $templateMgr->display('manager/people/searchUsers.tpl'); }