Exemplo n.º 1
0
 /**
  * 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');
         }
     }
 }
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 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');
 }
Exemplo n.º 5
0
 /**
  * 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');
 }
Exemplo n.º 7
0
 /**
  * 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');
     }
 }
Exemplo n.º 8
0
 /**
  * Constructor
  */
 function PluginHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 9
0
 /**
  * Constructor
  **/
 function ManagerPaymentHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 10
0
 /**
  * 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));
     }
 }
Exemplo n.º 12
0
 /**
  * Constructor
  **/
 function ApprovalNoticesHandler()
 {
     parent::ManagerHandler();
     $this->approvalNoticeDao =& DAORegistry::getDAO('ApprovalNoticeDAO');
 }
Exemplo n.º 13
0
 /**
  * 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'));
     }
 }
Exemplo n.º 14
0
 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));
 }
Exemplo n.º 15
0
 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'));
     }
 }
Exemplo n.º 16
0
 /**
  * Constructor
  **/
 function TimelineHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 17
0
 /**
  * Constructor
  **/
 function JournalLanguagesHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 18
0
 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);
 }
Exemplo n.º 19
0
 /**
  * Constructor
  */
 function FilesHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 20
0
 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']);
 }
Exemplo n.º 21
0
 /**
  * Constructor
  */
 function __construct()
 {
     parent::__construct();
 }
Exemplo n.º 22
0
 /**
  * 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;
 }
Exemplo n.º 23
0
 /**
  * Constructor
  **/
 function ManagerProgramHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 24
0
 /**
  * Constructor
  **/
 function ManagerLocationHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 25
0
 /**
  * Constructor
  **/
 function StatisticsHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 26
0
 /**
  * Constructor
  **/
 function SystemHandler()
 {
     parent::ManagerHandler();
     $this->addRoleAssignment(ROLE_ID_PRESS_MANAGER, array('system', 'languages', 'preparedEmails', 'reviewForms', 'readingTools', 'payments', 'plugins', 'archiving'));
 }
Exemplo n.º 27
0
 /**
  * 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;
 }
Exemplo n.º 28
0
 /**
  * Constructor
  **/
 function ManagerSchedConfHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 29
0
 /**
  * Constructor
  **/
 function PeopleHandler()
 {
     parent::ManagerHandler();
 }
Exemplo n.º 30
0
 /**
  * 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');
 }