예제 #1
0
 public function admin()
 {
     switch ($_REQUEST['mop']) {
         case 'delete_multimedia':
             if (!$this->folder->id || !Current_User::authorized('filecabinet', 'edit_folders', $this->folder->id, 'folder')) {
                 Current_User::disallow();
             }
             $this->loadMultimedia(filter_input(INPUT_GET, 'file_id', FILTER_VALIDATE_INT));
             $this->multimedia->delete();
             PHPWS_Core::goBack();
             break;
         case 'post_multimedia_upload':
             if (!$this->folder->id || !Current_User::authorized('filecabinet', 'edit_folders', $this->folder->id, 'folder')) {
                 Current_User::disallow();
             }
             $this->postMultimediaUpload();
             \PHPWS_Core::goBack();
             break;
         case 'upload_multimedia_form':
             if (!Current_User::secured('filecabinet', 'edit_folders', $this->multimedia->folder_id, 'folder')) {
                 Current_User::disallow();
             }
             $this->loadMultimedia(filter_input(INPUT_GET, 'file_id', FILTER_VALIDATE_INT));
             if (!$this->multimedia->id) {
                 $this->multimedia->folder_id = filter_input(INPUT_GET, 'folder_id', FILTER_VALIDATE_INT);
             }
             $this->edit();
             echo json_encode(array('title' => $this->title, 'content' => $this->content));
             exit;
         case 'edit_rtmp':
             if (!Current_User::secured('filecabinet', 'edit_folders', $this->multimedia->folder_id, 'folder')) {
                 Current_User::disallow();
             }
             $this->loadMultimedia(filter_input(INPUT_GET, 'file_id', FILTER_VALIDATE_INT));
             $this->editRTMP();
             echo json_encode(array('title' => $this->title, 'content' => $this->content));
             exit;
         case 'post_rtmp':
             if (!Current_User::authorized('filecabinet', 'edit_folders', $this->multimedia->folder_id, 'folder')) {
                 Current_User::disallow();
             }
             if (!$this->postRTMP()) {
                 $this->editRTMP();
             }
             \PHPWS_Core::goBack();
             break;
     }
     return $this->content;
 }
예제 #2
0
 public static function getAllowedStates()
 {
     $db = new \PHPWS_DB('intern_state');
     $db->addWhere('active', 1);
     $db->addColumn('abbr');
     $db->addColumn('full_name');
     $db->setIndexBy('abbr');
     $db->addOrder('full_name ASC');
     $states = $db->select('col');
     if (empty($states)) {
         \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, 'The list of allowed US states for internship locations has not been configured. Please use the administrative options to <a href="index.php?module=intern&action=edit_states">add allowed states.</a>');
         \NQ::close();
         PHPWS_Core::goBack();
     }
     return $states;
 }
예제 #3
0
 public function execute(CommandContext $context)
 {
     $request = \Server::getCurrentRequest();
     $vars = $request->getVars();
     extract($vars['vars']);
     if (!isset($schedule_type)) {
         throw new \Exception('Unknown schedule type requested');
     }
     if ($cmd == 'add') {
         switch ($schedule_type) {
             case 'autoassign':
                 $this->addAutoAssignSchedule();
                 break;
             case 'reportrunner':
                 $this->addReportRunnerSchedule();
                 break;
             case 'withdrawn':
                 $this->addWithdrawnSchedule();
                 break;
             case 'nightly_cache':
                 $this->addNightlyCacheSchedule();
                 break;
             default:
                 throw new \Exception('Unknown schedule type requested');
         }
     } elseif ($cmd == 'remove') {
         switch ($schedule_type) {
             case 'autoassign':
                 $this->dropAutoAssignSchedule();
                 break;
             case 'reportrunner':
                 $this->dropReportRunnerSchedule();
                 break;
             case 'withdrawn':
                 $this->dropWithdrawnSchedule();
                 break;
             case 'nightly_cache':
                 $this->dropNightlyCacheSchedule();
                 break;
             default:
                 throw new \Exception('Unknown schedule type requested');
         }
     } else {
         throw new \Exception('Unknown schedule type requested');
     }
     PHPWS_Core::goBack();
 }
예제 #4
0
 public static function getAllowedStates()
 {
     $db = new PHPWS_DB('intern_state');
     $db->addWhere('active', 1);
     $db->addColumn('abbr');
     $db->addColumn('full_name');
     $db->setIndexBy('abbr');
     // get backwards because we flip it
     $db->addOrder('full_name desc');
     $states = $db->select('col');
     if (empty($states)) {
         NQ::simple('intern', INTERN_ERROR, 'The list of allowed US states for internship locations has not been configured. Please use the administrative options to <a href="index.php?module=intern&action=edit_states">add allowed states.</a>');
         NQ::close();
         PHPWS_Core::goBack();
     }
     $states[-1] = 'Select a state';
     $states = array_reverse($states, true);
     return $states;
 }
예제 #5
0
 public static function returnToBookmark($clear_bm = true)
 {
     if (isset($_SESSION['PHPWS_Bookmark'])) {
         $bm = $_SESSION['PHPWS_Bookmark'];
         if ($clear_bm) {
             $_SESSION['PHPWS_Bookmark'] = null;
             unset($_SESSION['PHPWS_Bookmark']);
         }
         PHPWS_Core::reroute($bm);
     } else {
         PHPWS_Core::goBack();
     }
 }
예제 #6
0
 public function post()
 {
     switch ($_POST['rop']) {
         case 'post_roommate':
             $this->loadUserRoommate();
             if ($this->roommate->post()) {
                 try {
                     $this->roommate->save();
                     $this->setCarryMessage('Roommate saved successfully.');
                     \PHPWS_Core::reroute($this->roommate->viewLink());
                 } catch (\Exception $e) {
                     $this->setCarryMessage($e->getMessage());
                     \PHPWS_Core::reroute('index.php?module=properties&rop=view');
                 }
             } else {
                 $this->editRoommate();
                 $this->display();
             }
             break;
         case 'send_message':
             if (!$this->sendMessage()) {
                 $this->content = 'Sorry, but we couldn\'t save your message.';
                 return;
             }
             if (!$this->roommate->id) {
                 $this->content = 'Sorry, could not find this roommate. <a href="index.php?module=properties&rop=view">Go back to the list?</a>';
             } else {
                 $this->setCarryMessage('Message sent');
                 \PHPWS_Core::goBack();
             }
             break;
         case 'report_post':
             $this->reportPost();
             \PHPWS_Core::reroute('index.php?module=properties&rop=read_messages');
             break;
     }
 }
예제 #7
0
 public function admin()
 {
     if (!Current_User::allow('pagesmith')) {
         Current_User::disallow();
     }
     $this->loadPanel();
     $javascript = false;
     switch ($_REQUEST['aop']) {
         case 'block_info':
             $this->getTextBlockData($_GET['bid'], $_GET['pid'], $_GET['section_id']);
             exit;
         case 'save_block':
             $this->saveBlockData($_POST['pid'], $_POST['bid'], $_POST['section_id'], $_POST['content']);
             PHPWS_Cache::clearCache();
             exit;
         case 'get_undo':
             $this->getLastUndo($_GET['pid'], $_GET['bid'], $_GET['section_id']);
             exit;
         case 'menu':
             $this->loadForms();
             if (!isset($_GET['tab'])) {
                 $tab = $this->panel->getCurrentTab();
             } else {
                 $tab =& $_GET['tab'];
             }
             switch ($tab) {
                 case 'new':
                     $this->resetUndoSession(0);
                     $this->clearPageSession();
                     $this->loadPage();
                     $this->forms->editPage();
                     break;
                 case 'list':
                     $this->forms->pageList();
                     break;
                 case 'settings':
                     if (!Current_User::allow('pagesmith', null, null, null, true)) {
                         Current_User::disallow();
                     }
                     $this->forms->settings();
                     break;
             }
             break;
         case 'edit_page':
             $this->resetUndoSession(0);
             $this->loadPage();
             if (!$this->page->id) {
                 $this->title = dgettext('pagesmith', 'Sorry');
                 $this->content = dgettext('pagesmith', 'Page not found');
                 break;
             }
             $this->loadForms();
             if (!Current_User::allow('pagesmith', 'edit_page', $this->page->id)) {
                 Current_User::disallow();
             }
             $this->page->loadSections(true);
             $this->forms->pageLayout();
             break;
         case 'pick_template':
             $this->resetUndoSession(0);
             $this->loadForms();
             $this->loadPage();
             $this->page->loadTemplate();
             $this->page->loadSections(true);
             $this->killSaved($this->page->id);
             $this->forms->editPage();
             break;
         case 'delete_page':
             if (!Current_User::authorized('pagesmith', 'delete_page')) {
                 Current_User::disallow();
             }
             $this->loadPage();
             $this->page->delete();
             PHPWS_Cache::clearCache();
             $this->loadForms();
             $this->forms->pageList();
             break;
         case 'edit_page_header':
             $this->loadPage();
             $this->loadForms();
             $this->forms->editPageHeader();
             $javascript = true;
             break;
         case 'delete_section':
             $this->deleteSection($_GET['sec_id']);
             exit;
             break;
         case 'post_header':
             $this->postHeader();
             break;
         case 'post_text':
             $this->postText();
             break;
         case 'post_page':
             $result = $this->postPage();
             switch ($result) {
                 case -1:
                     $this->loadForms();
                     $this->page->loadSections(true);
                     $this->forms->editPage();
                     break;
                 case 0:
                     $this->message = dgettext('pagesmith', 'Not enough content to create a page.');
                     $this->loadForms();
                     $this->page->loadSections(true);
                     $this->forms->editPage();
                     break;
                 case 1:
                     $this->killSaved($this->page->id);
                     PHPWS_Cache::clearCache();
                     PHPWS_Core::reroute($this->page->url());
                     break;
             }
             break;
         case 'front_page_toggle':
             $db = \Database::newDB();
             $db->addTable('ps_page')->addValue('front_page', 0);
             $db->update();
             $this->loadPage();
             $this->page->front_page = (bool) $_GET['fp'];
             $this->page->save();
             PHPWS_Cache::clearCache();
             $this->removeFromMenu();
             $this->loadForms();
             $this->forms->pageList();
             break;
         case 'shorten_links':
             if (!Current_User::authorized('pagesmith', 'settings', null, null, true)) {
                 Current_User::disallow();
             }
             $this->shortenLinks();
             PHPWS_Core::goBack();
             break;
         case 'lengthen_links':
             if (!Current_User::authorized('pagesmith', 'settings', null, null, true)) {
                 Current_User::disallow();
             }
             $this->lengthenLinks();
             PHPWS_Core::goBack();
             break;
         case 'post_settings':
             if (!Current_User::authorized('pagesmith', 'settings', null, null, true)) {
                 Current_User::disallow();
             }
             $this->postSettings();
             $this->message = dgettext('pagesmith', 'Settings saved');
             $this->loadForms();
             $this->forms->settings();
             break;
         default:
             PHPWS_Core::errorPage('404');
             break;
     }
     if ($javascript) {
         $tpl['TITLE'] = $this->title;
         $tpl['CONTENT'] = $this->content;
         $tpl['MESSAGE'] = $this->message;
         Layout::nakedDisplay(PHPWS_Template::process($tpl, 'pagesmith', 'admin_main.tpl'));
     } else {
         Layout::add(PHPWS_ControlPanel::display($this->panel->display($this->content, $this->title, $this->message)));
     }
 }
예제 #8
0
 /**
  * Action
  *
  * @author Greg Meiste <*****@*****.**>
  */
 function action()
 {
     Layout::addStyle('wiki');
     if (!PHPWS_Settings::get('wiki', 'allow_anon_view') && !Current_User::isLogged()) {
         Current_User::requireLogin();
         return;
     }
     if (isset($_REQUEST['page_id']) && is_numeric($_REQUEST['page_id'])) {
         PHPWS_Core::initModClass('wiki', 'WikiPage.php');
         $wikipage = new WikiPage($_REQUEST['page_id']);
     } else {
         if (isset($_REQUEST['page']) && is_string($_REQUEST['page'])) {
             PHPWS_Core::initModClass('wiki', 'WikiPage.php');
             $wikipage = new WikiPage($_REQUEST['page']);
         }
     }
     if (!isset($_REQUEST['op']) && !isset($_REQUEST['page_op'])) {
         // phpWebSite 1.5.0 and later mod_rewrite method
         if (isset($_GET['var1'])) {
             $_REQUEST['id'] = $_GET['id'] = $_GET['var1'];
         }
         if (isset($_REQUEST['id']) && is_string($_REQUEST['id'])) {
             PHPWS_Core::initModClass('wiki', 'WikiPage.php');
             $wikipage = new WikiPage($_REQUEST['id']);
         }
         $_REQUEST['page_op'] = 'view';
     }
     WikiManager::addToMiniAdmin();
     if (isset($_REQUEST['page_op']) && isset($wikipage)) {
         $wikipage->action();
         return;
     }
     switch (@$_REQUEST['op']) {
         case 'admin':
         case 'savesettings':
             PHPWS_Core::initModClass('wiki', 'WikiSettings.php');
             WikiSettings::admin();
             break;
         case 'doimagedelete':
         case 'doimageupload':
         case 'imageupload':
             WikiManager::imageUpload();
             break;
         case 'imagedelete':
             PHPWS_Core::initModClass('wiki', 'WikiImage.php');
             $delImage = new WikiImage($_REQUEST['id']);
             $template['TITLE'] = dgettext('wiki', 'Wiki Images');
             $template['CONTENT'] = $delImage->delete();
             Layout::add(PHPWS_Template::process($template, 'wiki', 'box.tpl'), 'wiki', 'wiki_mod', TRUE);
             break;
         case 'imagecopy':
             PHPWS_Core::initModClass('wiki', 'WikiImage.php');
             $image = new WikiImage($_REQUEST['id']);
             Clipboard::copy($image->getFilename(), $image->getTag());
             PHPWS_Core::goBack();
             break;
         case 'recentchanges':
             $template['TITLE'] = dgettext('wiki', 'Recent changes');
             $template['CONTENT'] = WikiManager::recentChanges();
             Layout::add(PHPWS_Template::process($template, 'wiki', 'box.tpl'), 'wiki', 'wiki_mod', TRUE);
             break;
         case 'random':
             WikiManager::random();
             break;
         case 'interwikisetup':
         case 'addinterwiki':
             PHPWS_Core::initModClass('wiki', 'InterWiki.php');
             $interwiki = new InterWiki();
             $interwiki->setup();
             break;
         case 'editinterwiki':
         case 'saveinterwiki':
         case 'deleteinterwiki':
         case 'dodeleteinterwiki':
             PHPWS_Core::initModClass('wiki', 'InterWiki.php');
             $interwiki = new InterWiki($_REQUEST['id']);
             $interwiki->setup();
             break;
         case 'copyinterwiki':
             PHPWS_Core::initModClass('wiki', 'InterWiki.php');
             $interwiki = new InterWiki($_REQUEST['id']);
             Clipboard::copy($interwiki->getLabel(), $interwiki->getLabel() . ':PageName');
             PHPWS_Core::goBack();
             break;
         default:
             $_REQUEST['page'] = PHPWS_Settings::get('wiki', 'default_page');
             WikiManager::action();
     }
 }
예제 #9
0
 public static function main()
 {
     if (!Current_User::authorized('blog')) {
         Current_User::disallow(dgettext('blog', 'User attempted access to Blog administration.'));
         return;
     }
     $title = $content = NULL;
     $message = Blog_Admin::getForward();
     $panel = Blog_Admin::cpanel();
     $panel->enableSecure();
     if (isset($_REQUEST['command'])) {
         $command = $_REQUEST['command'];
     } else {
         $command = $panel->getCurrentTab();
     }
     if (isset($_REQUEST['blog_id'])) {
         $blog = new Blog((int) $_REQUEST['blog_id']);
     } else {
         $blog = new Blog();
     }
     switch ($command) {
         case 'edit':
             $panel->setCurrentTab('list');
             if (!Current_User::isUser($blog->author_id) && !Current_User::authorized('blog', 'edit_blog', $_REQUEST['blog_id'], 'entry')) {
                 Current_User::disallow(dgettext('blog', 'User tried to edit a blog.'));
                 return;
             }
             $title = dgettext('blog', 'Update Blog Entry');
             $content = Blog_Form::edit($blog);
             break;
         case 'new':
             $title = dgettext('blog', 'New Blog Entry');
             $content = Blog_Form::edit($blog);
             break;
         case 'delete':
             //Blog_Admin::resetCache();
             $result = $blog->delete();
             Blog_Admin::setForward(dgettext('blog', 'Blog entry deleted.'), 'list');
             break;
         case 'list':
             $title = dgettext('blog', 'Blog Entries');
             $content = Blog_Admin::entry_list();
             break;
         case 'menu_submit_link':
             Menu::pinLink(dgettext('blog', 'Submit entry'), 'index.php?module=blog&action=user&action=submit');
             PHPWS_Core::reroute('index.php?module=blog&action=admin&tab=settings&authkey=' . Current_User::getAuthKey());
             break;
         case 'sticky':
             if (!Current_User::isUnrestricted('blog')) {
                 Current_User::disallow();
             }
             Blog_Admin::sticky($blog);
             PHPWS_Core::goBack();
             break;
         case 'unsticky':
             if (!Current_User::isUnrestricted('blog')) {
                 Current_User::disallow();
             }
             Blog_Admin::unsticky($blog);
             PHPWS_Core::goBack();
             break;
         case 'post_entry':
             $title = dgettext('blog', 'Blog Archive');
             $panel->setCurrentTab('list');
             $blog->post_entry();
             $link_back = PHPWS_Text::linkAddress('blog', array('action' => 'admin', 'tab' => 'list'), TRUE);
             if ($blog->_error) {
                 if (empty($blog->id)) {
                     $panel->setCurrentTab('new');
                 }
                 $content = Blog_Form::edit($blog);
             } else {
                 if (!isset($_POST['blog_id']) && PHPWS_Core::isPosted()) {
                     Blog_Admin::setForward(dgettext('blog', 'Entry saved successfully.'), 'list');
                 }
                 $result = $blog->save();
                 //Blog_Admin::resetCache();
                 if (PHPWS_Error::isError($result)) {
                     $message = dgettext('blog', 'An error occurred when trying to save your entry. Please check your logs.');
                     PHPWS_Error::log($result);
                     Blog_Admin::setForward($message, 'list');
                 }
                 if (!$blog->approved) {
                     Blog_Admin::setForward(dgettext('blog', 'Your entry is being held for approval.'), 'list');
                 } else {
                     PHPWS_Core::reroute($blog->getViewLink(true));
                 }
             }
             break;
         case 'reset_cache':
             Blog_Admin::resetCache();
             PHPWS_Core::goBack();
             break;
         case 'post_settings':
             if (!Current_User::authorized('blog', 'settings')) {
                 Current_User::disallow();
                 return;
             }
             if (Current_User::isDeity() && isset($_POST['purge_confirm'])) {
                 $title = dgettext('blog', 'Purge Blog Entries');
                 $content = Blog_Admin::confirmPurge($_POST['purge_date']);
                 break;
             }
             Blog_Admin::postSettings();
             $message = dgettext('blog', 'Blog settings saved.');
         case 'settings':
             if (!Current_User::allow('blog', 'settings')) {
                 Current_User::disallow();
                 return;
             }
             $panel->setCurrentTab('settings');
             $title = dgettext('blog', 'Blog Settings');
             $content = Blog_Form::settings();
             break;
         case 'purge_entries':
             if (Current_User::authorized('blog') && Current_User::isDeity()) {
                 Blog_Admin::purgeEntries($_GET['pd']);
                 $message = dgettext('blog', 'Blog entries purged.');
             }
             $content = Blog_Form::settings();
     }
     Layout::add(PHPWS_ControlPanel::display($panel->display($content, $title, $message)));
 }
예제 #10
0
 public static function main()
 {
     $title = $content = NULL;
     $message = Access::getMessage();
     if (!Current_User::allow('access')) {
         Current_User::disallow();
         exit;
     }
     $panel = Access::cpanel();
     if (isset($_REQUEST['command'])) {
         $command = $_REQUEST['command'];
     } else {
         $command = $panel->getCurrentTab();
     }
     // If the command is empty, that means no tabs were set
     // In this case, an admin with full rights needs to log in
     if (empty($command)) {
         $title = dgettext('access', 'Sorry');
         $content = dgettext('access', 'Access needs a higher administrator\'s attention before you may use it.');
     } else {
         switch ($command) {
             case 'post_admin':
                 Access::saveAdmin();
                 Access::sendMessage(dgettext('access', 'Settings saved.'), 'admin');
                 break;
             case 'restore_default':
                 $source = PHPWS_SOURCE_DIR . 'core/inc/htaccess';
                 $dest = PHPWS_HOME_DIR . '.htaccess';
                 if (copy($source, $dest)) {
                     Access::sendMessage(dgettext('access', 'Default .htaccess file restored.'), 'update');
                 } else {
                     Access::sendMessage(dgettext('access', 'Unable to restore default .htaccess file.'), 'update');
                 }
                 break;
             case 'post_deny_allow':
                 $result = Access::postDenyAllow();
                 if ($result == false) {
                     Access::sendMessage(dgettext('access', 'IP address was not formatted correctly or not allowed.'), 'deny_allow');
                 } elseif (PHPWS_Error::isError($result)) {
                     PHPWS_Error::log($result);
                     Access::sendMessage(dgettext('access', 'An error occurred.') . ' ' . dgettext('access', 'Please check your logs.'), 'deny_allow');
                 }
                 Access::sendMessage(NULL, 'deny_allow');
                 break;
             case 'delete_allow_deny':
                 PHPWS_Core::initModClass('access', 'Allow_Deny.php');
                 $allow_deny = new Access_Allow_Deny($_GET['ad_id']);
                 $allow_deny->delete();
                 Access::sendMessage(dgettext('access', 'IP address deleted.'), 'deny_allow');
                 break;
             case 'deny_allow':
                 PHPWS_Core::initModClass('access', 'Forms.php');
                 $title = dgettext('access', 'Denys and Allows');
                 $content = Access_Forms::denyAllowForm();
                 break;
             case 'delete_shortcut':
                 PHPWS_Core::initModClass('access', 'Shortcut.php');
                 $shortcut = new Access_Shortcut($_REQUEST['shortcut_id']);
                 if (empty($shortcut->_error) && $shortcut->id) {
                     $result = $shortcut->delete();
                     if (PHPWS_Error::isError($result)) {
                         Access::sendMessage(dgettext('access', 'An error occurred when deleting your shortcut.'), 'shortcuts');
                     }
                 }
                 Access::sendMessage(dgettext('access', 'Shortcut deleted'), 'shortcuts');
                 break;
             case 'shortcuts':
                 PHPWS_Core::initModClass('access', 'Forms.php');
                 $title = dgettext('access', 'Shortcuts');
                 $content = Access_Forms::shortcuts();
                 break;
             case 'post_shortcut_list':
                 $message = NULL;
                 $result = Access::postShortcutList();
                 if (PHPWS_Error::isError($result)) {
                     $message = dgettext('access', 'An error occurred.') . ' ' . dgettext('access', 'Please check your logs.');
                 }
                 Access::sendMessage($message, 'shortcuts');
                 break;
             case 'edit_shortcut':
                 PHPWS_Core::initModClass('access', 'Forms.php');
                 echo Access_Forms::shortcut_menu();
                 exit;
                 break;
             case 'post_shortcut':
                 PHPWS_Core::initModClass('access', 'Shortcut.php');
                 $sch_id = filter_input(INPUT_POST, 'sch_id', FILTER_SANITIZE_NUMBER_INT);
                 if ($sch_id) {
                     $shortcut = new Access_Shortcut($sch_id);
                 } else {
                     $shortcut = new Access_Shortcut();
                 }
                 try {
                     $shortcut->postShortcut();
                     $shortcut->save();
                     $json['keyword'] = $shortcut->keyword;
                     $json['error'] = 0;
                 } catch (\Exception $e) {
                     $json['message'] = $e->getMessage();
                     $json['error'] = 1;
                 }
                 echo json_encode($json);
                 exit;
                 break;
             case 'htaccess':
                 if (Current_User::isDeity()) {
                     $title = dgettext('access', 'htaccess');
                     $content = Access::htaccess();
                 } else {
                     Current_User::disallow();
                 }
                 break;
             case 'add_rewritebase':
                 if (Current_User::isDeity()) {
                     Access::addRewriteBase();
                     PHPWS_Core::goBack();
                 } else {
                     Current_User::disallow();
                 }
                 break;
             case 'add_forward':
                 if (Current_User::isDeity()) {
                     Access::addForward();
                     PHPWS_Core::goBack();
                 } else {
                     Current_User::disallow();
                 }
                 break;
             case 'remove_forward':
                 if (Current_User::isDeity()) {
                     Access::removeForward();
                     PHPWS_Core::goBack();
                 } else {
                     Current_User::disallow();
                 }
                 break;
             case 'menu_fix':
                 Access::menuFix();
                 PHPWS_Core::goBack();
                 break;
             case 'page_fix':
                 Access::pageFix();
                 PHPWS_Core::goBack();
                 break;
             case 'autoforward_on':
                 PHPWS_Settings::set('access', 'forward_ids', 1);
                 PHPWS_Settings::save('access');
                 PHPWS_Core::goBack();
                 break;
             case 'autoforward_off':
                 PHPWS_Settings::set('access', 'forward_ids', 0);
                 PHPWS_Settings::save('access');
                 PHPWS_Core::goBack();
                 break;
         }
     }
     $tpl['TITLE'] = $title;
     $tpl['MESSAGE'] = $message;
     $tpl['CONTENT'] = $content;
     $main = PHPWS_Template::process($tpl, 'access', 'main.tpl');
     $panel->setContent($main);
     $finalPanel = $panel->display();
     Layout::add(PHPWS_ControlPanel::display($finalPanel));
 }
예제 #11
0
 public static function main()
 {
     if (!Current_User::allow('search')) {
         Current_User::disallow();
     }
     $panel = Search_Admin::cpanel();
     if (isset($_REQUEST['command'])) {
         $command = $_REQUEST['command'];
     } elseif (isset($_REQUEST['tab'])) {
         $command = $_REQUEST['tab'];
     } else {
         $command = $panel->getCurrentTab();
     }
     switch ($command) {
         case 'delete_keyword':
         case 'add_keyword':
         case 'remove_searchword':
         case 'add_ignore':
             if (!Current_User::authorized('search')) {
                 Current_User::disallow();
             }
             break;
     }
     switch ($command) {
         case 'keyword':
             $template = Search_Admin::keyword();
             break;
         case 'ignore':
             $template = Search_Admin::ignore();
             break;
         case 'settings':
             $template = Search_Admin::settings();
             break;
         case 'close_admin':
             unset($_SESSION['Search_Add_Words']);
             unset($_SESSION['Search_Admin']);
             PHPWS_Core::goBack();
             break;
         case 'delete_keyword':
             Search_Admin::deleteKeyword();
             PHPWS_Core::goBack();
             break;
         case 'add_parse_word':
             if (!isset($_REQUEST['keyword'])) {
                 PHPWS_Core::goBack();
             }
             Search_Admin::addParseWord($_REQUEST['keyword']);
             Search_Admin::sendMessage(dgettext('search', 'Keywords added to admin menu.'), 'keyword');
             break;
         case 'drop_keyword':
             if (isset($_SESSION['Search_Add_Words'])) {
                 $array_key = array_search($_REQUEST['kw'], $_SESSION['Search_Add_Words']);
                 if ($array_key !== FALSE) {
                     unset($_SESSION['Search_Add_Words'][$array_key]);
                 }
             }
             PHPWS_Core::goBack();
             break;
         case 'add_keyword':
             if (!isset($_GET['kw']) || !isset($_GET['key_id'])) {
                 PHPWS_Core::goBack();
             }
             Search_Admin::addKeyword($_GET['kw'], $_GET['key_id']);
             PHPWS_Core::goBack();
             break;
         case 'remove_searchword':
             if (!isset($_GET['kw']) || !isset($_GET['key_id'])) {
                 PHPWS_Core::goBack();
             }
             Search_Admin::removeSearchword($_GET['kw'], $_GET['key_id']);
             PHPWS_Core::goBack();
             break;
         case 'add_ignore':
             if (!isset($_GET['keyword'])) {
                 PHPWS_Core::goBack();
             }
             Search_Admin::setIgnore($_GET['keyword'], 1);
             PHPWS_Core::goBack();
             break;
         case 'remove_ignore':
             if (!isset($_GET['keyword'])) {
                 PHPWS_Core::goBack();
             }
             Search_Admin::setIgnore($_GET['keyword'], 0);
             PHPWS_Core::goBack();
             break;
         case 'save_settings':
             Search_Admin::saveSettings();
             Search_Admin::sendMessage(dgettext('search', 'Settings saved'), 'settings');
             break;
     }
     $template['MESSAGE'] = Search_Admin::getMessage();
     $final = PHPWS_Template::process($template, 'search', 'main.tpl');
     $panel->setContent($final);
     $finalPanel = $panel->display();
     Layout::add(PHPWS_ControlPanel::display($finalPanel));
 }
예제 #12
0
 public static function display()
 {
     PHPWS_Core::initModClass('intern', 'Term.php');
     PHPWS_Core::initModClass('intern', 'Department.php');
     PHPWS_Core::initModClass('intern', 'Major.php');
     PHPWS_Core::initModClass('intern', 'GradProgram.php');
     PHPWS_Core::initModClass('intern', 'Internship.php');
     PHPWS_Core::initModClass('intern', 'Agency.php');
     PHPWS_Core::initModClass('intern', 'Subject.php');
     PHPWS_Core::initModClass('intern', 'WorkflowStateFactory.php');
     // Set up search fields
     $form = new PHPWS_Form();
     $form->setMethod('get');
     $form->addHidden('module', 'intern');
     $form->addHidden('action', 'results');
     $form->useRowRepeat();
     $form->addText('name');
     $form->setLabel('name', "Name or Banner ID");
     $terms = Term::getTermsAssoc();
     //$thisTerm = Term::timeToTerm(time());
     $form->addSelect('term_select', $terms);
     $form->setLabel('term_select', 'Term');
     $form->setClass('term_select', 'form-control');
     //$form->setMatch('term_select', $thisTerm);
     // Deity can search for any department. Other users are restricted.
     if (Current_User::isDeity()) {
         $depts = Department::getDepartmentsAssoc();
     } else {
         $depts = Department::getDepartmentsAssocForUsername(Current_User::getUsername());
     }
     $form->addSelect('dept', $depts);
     $form->setLabel('dept', 'Department');
     //$form->setClass('', 'form-control');
     $form->setClass('dept', 'form-control');
     // If the user only has one department, select it for them
     // sizeof($depts) == 2 because of the 'Select Deparmtnet' option
     if (sizeof($depts) == 2) {
         $keys = array_keys($depts);
         $form->setMatch('dept', $keys[1]);
     }
     // Student level radio button
     javascript('jquery');
     javascriptMod('intern', 'majorSelector', array('form_id' => $form->id));
     $levels = array('-1' => 'Any Level', 'ugrad' => 'Undergraduate', 'grad' => 'Graduate');
     $form->addSelect('student_level', $levels);
     $form->setLabel('student_level', 'Level');
     $form->setClass('student_level', 'form-control');
     // Student Major dummy box (gets replaced by dropdowns below using JS when student_level is selected)
     $levels = array('-1' => 'Choose student level first');
     $form->addDropBox('student_major', $levels);
     $form->setLabel('student_major', 'Major / Program');
     $form->addCssClass('student_major', 'form-control');
     // Undergrad major drop down
     if (isset($s)) {
         $majors = Major::getMajorsAssoc($s->ugrad_major);
     } else {
         $majors = Major::getMajorsAssoc();
     }
     $form->addSelect('ugrad_major', $majors);
     $form->setLabel('ugrad_major', 'Undergraduate Majors &amp; Certificate Programs');
     $form->setClass('ugrad_major', 'form-control');
     // Graduate major drop down
     if (isset($s)) {
         $progs = GradProgram::getGradProgsAssoc($s->grad_prog);
     } else {
         $progs = GradProgram::getGradProgsAssoc();
     }
     $form->addSelect('grad_prog', $progs);
     $form->setLabel('grad_prog', 'Graduate Majors &amp; Certificate Programs');
     $form->setClass('grad_prog', 'form-control');
     // Campus
     $campuses = array('main_campus' => 'Main Campus', 'distance_ed' => 'Distance Ed');
     $form->addRadioAssoc('campus', $campuses);
     /***************
      * Course Info *
      ***************/
     $subjects = Subject::getSubjects();
     $form->addSelect('course_subj', $subjects);
     $form->setLabel('course_subj', 'Subject');
     $form->setClass('course_subj', 'form-control');
     $form->addText('course_no');
     $form->setLabel('course_no', 'Course Number');
     $form->setSize('course_no', 6);
     $form->setMaxSize('course_no', 4);
     $form->setClass('course_no', 'form-control');
     $form->addText('course_sect');
     $form->setLabel('course_sect', 'Section');
     $form->setSize('course_sect', 6);
     $form->setMaxSize('course_sect', 4);
     $form->setClass('course_sect', 'form-control');
     // Internship types.
     $types = Internship::getTypesAssoc();
     $form->addRadioAssoc('type', $types);
     // Location
     $loc = array('domestic' => 'Domestic', 'internat' => 'International');
     $form->addRadioAssoc('loc', $loc);
     /* State search */
     $db = new PHPWS_DB('intern_state');
     $db->addWhere('active', 1);
     $db->addColumn('abbr');
     $db->addColumn('full_name');
     $db->setIndexBy('abbr');
     // get backwards because we flip it
     $db->addOrder('full_name desc');
     $states = $db->select('col');
     if (empty($states)) {
         NQ::simple('intern', INTERN_ERROR, 'The list of allowed US states for internship locations has not been configured. Please use the administrative options to <a href="index.php?module=intern&action=edit_states">add allowed states.</a>');
         NQ::close();
         PHPWS_Core::goBack();
     }
     $states[-1] = 'Select state';
     $states = array_reverse($states, true);
     $form->addSelect('state', $states);
     $form->setLabel('state', 'State');
     $form->setClass('state', 'form-control');
     /* Province search */
     $form->addText('prov');
     $form->setLabel('prov', 'Province/Territory');
     $form->setClass('prov', 'form-control');
     // Workflow states
     $workflowStates = WorkflowStateFactory::getStatesAssoc();
     unset($workflowStates['CreationState']);
     // Remove this state, since it's not valid (internal only state for initial creation)
     $form->addCheckAssoc('workflow_state', $workflowStates);
     unset($_REQUEST['module']);
     unset($_REQUEST['action']);
     unset($_REQUEST['submit']);
     //test($_REQUEST,1);
     $form->plugIn($_REQUEST);
     $form->addSubmit('submit', 'Search');
     // Javascript...
     javascript('jquery');
     javascriptMod('intern', 'resetSearch');
     return PHPWS_Template::process($form->getTemplate(), 'intern', 'search.tpl');
 }
예제 #13
0
 public static function permission()
 {
     if (!isset($_REQUEST['key_id'])) {
         return;
     }
     $key = new Key((int) $_REQUEST['key_id']);
     if (!Key::checkKey($key, false)) {
         return;
     }
     if (Current_User::isRestricted($key->module) || !$key->allowEdit()) {
         Current_User::disallow();
     }
     // View permissions must be first to allow error checking
     // Edit will add its list to the view
     Users_Permission::postViewPermissions($key);
     Users_Permission::postEditPermissions($key);
     $result = $key->savePermissions();
     if (isset($_POST['popbox'])) {
         Layout::nakedDisplay(javascript('close_refresh', array('refresh' => 0)));
     } else {
         if (PHPWS_Error::logIfError($result)) {
             $_SESSION['Permission_Message'] = dgettext('users', 'An error occurred.');
         } else {
             $_SESSION['Permission_Message'] = dgettext('users', 'Permissions updated.');
         }
         PHPWS_Core::goBack();
     }
 }
예제 #14
0
 public function process()
 {
     if (!Current_User::allow('checkin')) {
         Current_User::disallow();
     }
     if (isset($_REQUEST['aop'])) {
         if ($_REQUEST['aop'] == 'switch') {
             if (Current_User::allow('checkin', 'settings')) {
                 $cmd = 'settings';
             } elseif (Current_User::allow('checkin', 'assign_visitors')) {
                 $cmd = 'assign';
             } else {
                 $cmd = 'waiting';
             }
         } else {
             $cmd = $_REQUEST['aop'];
         }
     } elseif ($_REQUEST['tab']) {
         $cmd = $_REQUEST['tab'];
     } else {
         PHPWS_Core::errorPage('404');
     }
     $js = false;
     $js = isset($_GET['print']);
     switch ($cmd) {
         case 'finish_meeting':
             $this->finishMeeting();
             PHPWS_Core::goBack();
             break;
         case 'start_meeting':
             $this->startMeeting();
             PHPWS_Core::goBack();
             break;
         case 'sendback':
             $this->sendBack();
             PHPWS_Core::goBack();
             break;
         case 'unavailable':
             $this->unavailable();
             PHPWS_Core::goBack();
             break;
         case 'available':
             $this->available();
             PHPWS_Core::goBack();
             break;
         case 'report':
             if (!PHPWS_Settings::get('checkin', 'staff_see_reports') && !Current_User::allow('checkin', 'assign_visitors')) {
                 Current_User::disallow();
             }
             if (isset($_GET['daily_report'])) {
                 $this->dailyReport(isset($_GET['print']));
             } elseif (isset($_GET['summary_report'])) {
                 $this->summaryReport();
             } else {
                 $this->report();
             }
             //$this->report2();
             break;
         case 'daily_report':
             if (!PHPWS_Settings::get('checkin', 'staff_see_reports') && !Current_User::allow('checkin', 'assign_visitors')) {
                 Current_User::disallow();
             }
             break;
         case 'month_report':
             if (!Current_User::allow('checkin', 'assign_visitors')) {
                 Current_User::disallow();
             }
             $this->monthReport(isset($_GET['print']));
             break;
         case 'visitor_report':
             if (!Current_User::allow('checkin', 'assign_visitors')) {
                 Current_User::disallow();
             }
             $this->visitorReport(isset($_GET['print']));
             break;
         case 'reassign':
             // Called via ajax
             if (Current_User::authorized('checkin', 'assign_visitors')) {
                 if (isset($_GET['staff_id']) && $_GET['staff_id'] >= 0 && isset($_GET['visitor_id'])) {
                     $this->loadVisitor($_GET['visitor_id']);
                     $staff_id = $this->visitor->assigned;
                     $db = new PHPWS_DB('checkin_visitor');
                     $db->addValue('assigned', (int) $_GET['staff_id']);
                     $db->addWhere('id', (int) $_GET['visitor_id']);
                     PHPWS_Error::logIfError($db->update());
                     printf('staff_id %s, visitor_id %s', $_GET['staff_id'], $_GET['visitor_id']);
                     $this->loadStaff($staff_id);
                     /*
                      if ($this->staff->status == 3) {
                      $this->staff->status = 0;
                      $this->staff->save();
                      }
                     */
                 }
             }
             exit;
             break;
         case 'move_up':
             if (Current_User::allow('checkin', 'assign_visitors')) {
                 $db = new PHPWS_DB('checkin_staff');
                 $db->moveRow('view_order', 'id', $_GET['staff_id'], 'up');
             }
             PHPWS_Core::goBack();
             break;
         case 'move_down':
             if (Current_User::allow('checkin', 'assign_visitors')) {
                 $db = new PHPWS_DB('checkin_staff');
                 $db->moveRow('view_order', 'id', $_GET['staff_id'], 'down');
             }
             PHPWS_Core::goBack();
             break;
         case 'assign':
             if (Current_User::allow('checkin', 'assign_visitors')) {
                 $this->panel->setCurrentTab('assign');
                 $this->assign();
             }
             break;
         case 'post_note':
             $this->loadVisitor();
             $this->saveNote();
             PHPWS_Core::goBack();
             break;
         case 'hide_panel':
             PHPWS_Cookie::write('checkin_hide_panel', 1);
             PHPWS_Core::goBack();
             break;
         case 'show_panel':
             PHPWS_Cookie::delete('checkin_hide_panel');
             PHPWS_Core::goBack();
             $this->panel->setCurrentTab('assign');
             $this->assign();
             break;
         case 'hide_sidebar':
             PHPWS_Cookie::write('checkin_hide_sidebar', 1);
             PHPWS_Core::goBack();
             $this->panel->setCurrentTab('assign');
             $this->use_sidebar = false;
             $this->assign();
             break;
         case 'show_sidebar':
             PHPWS_Cookie::delete('checkin_hide_sidebar');
             PHPWS_Core::goBack();
             $this->panel->setCurrentTab('assign');
             $this->assign();
             break;
         case 'waiting':
             $this->panel->setCurrentTab('waiting');
             $this->loadCurrentStaff();
             $this->waiting();
             break;
         case 'repeats':
             $this->repeats();
             break;
         case 'small_wait':
             $this->loadCurrentStaff();
             $this->waiting(true);
             $js = true;
             break;
         case 'remove_visitor':
             if (Current_User::allow('checkin', 'remove_visitors')) {
                 $this->removeVisitor();
             }
             PHPWS_Core::goBack();
             break;
         case 'settings':
             if (Current_User::allow('checkin', 'settings')) {
                 $this->panel->setCurrentTab('settings');
                 $this->settings();
             }
             break;
         case 'reasons':
             if (Current_User::allow('checkin', 'settings')) {
                 $this->panel->setCurrentTab('reasons');
                 $this->reasons();
             }
             break;
         case 'post_reason':
             if (Current_User::allow('checkin', 'settings')) {
                 $this->loadReason();
                 if ($this->postReason()) {
                     $this->reason->save();
                     PHPWS_Core::reroute('index.php?module=checkin&tab=reasons');
                 } else {
                     $this->editReason();
                 }
             }
             break;
         case 'staff':
             $this->panel->setCurrentTab('staff');
             $this->staff();
             break;
         case 'edit_staff':
             if (Current_User::allow('checkin', 'settings')) {
                 $this->loadStaff(null, true);
                 $this->editStaff();
             }
             break;
         case 'search_users':
             $this->searchUsers();
             break;
         case 'update_reason':
             if (Current_User::allow('checkin', 'settings')) {
                 if (Current_User::authorized('checkin', 'settings')) {
                     $this->updateReason();
                 }
                 $this->panel->setCurrentTab('settings');
                 $this->settings();
             }
             break;
         case 'post_staff':
             if (!Current_User::authorized('checkin', 'settings')) {
                 Current_User::disallow();
             }
             if ($this->postStaff()) {
                 // save post
                 $this->staff->save();
                 $this->staff->saveReasons();
                 PHPWS_Core::reroute('index.php?module=checkin&tab=staff');
             } else {
                 // post failed
                 $this->loadStaff();
                 $this->editStaff();
             }
             break;
         case 'post_settings':
             // from Checkin_Admin::settings
             if (Current_User::authorized('checkin', 'settings')) {
                 $this->postSettings();
             }
             PHPWS_Core::reroute('index.php?module=checkin&tab=settings');
             break;
         case 'edit_reason':
             $this->loadReason();
             $this->editReason();
             break;
         case 'delete_reason':
             $this->loadReason();
             $this->reason->delete();
             PHPWS_Core::goBack();
             break;
         case 'deactivate_staff':
             PHPWS_Core::initModClass('checkin', 'Staff.php');
             $staff = new Checkin_Staff($_GET['id']);
             $staff->active = 0;
             $staff->save();
             PHPWS_Core::goBack();
             break;
         case 'activate_staff':
             PHPWS_Core::initModClass('checkin', 'Staff.php');
             $staff = new Checkin_Staff($_GET['id']);
             $staff->active = 1;
             $staff->save();
             PHPWS_Core::goBack();
             break;
             // This is for testing purposes and never happens in actual use
         // This is for testing purposes and never happens in actual use
         case 'unassignAll':
             $this->unassignAll();
             break;
             // This is for testing purposes and never happens in actual use
         // This is for testing purposes and never happens in actual use
         case 'auto_assign':
             $this->autoAssign();
             break;
     }
     if (empty($this->content)) {
         $this->content = dgettext('checkin', 'Command not recognized.');
     }
     if ($js) {
         $tpl['TITLE'] =& $this->title;
         $tpl['CONTENT'] =& $this->content;
         $tpl['MESSAGE'] =& $this->message;
         $content = PHPWS_Template::process($tpl, 'checkin', 'main.tpl');
         Layout::nakedDisplay($content, $this->title);
     } else {
         if (is_array($this->message)) {
             $this->message = implode('<br />', $this->message);
         }
         if (!$this->use_sidebar) {
             Layout::collapse();
         }
         if ($this->use_panel) {
             Layout::add(PHPWS_ControlPanel::display($this->panel->display($this->content, $this->title, $this->message)));
         } else {
             $tpl['TITLE'] =& $this->title;
             $tpl['CONTENT'] =& $this->content;
             $tpl['MESSAGE'] =& $this->message;
             Layout::add(PHPWS_Template::process($tpl, 'checkin', 'main.tpl'));
         }
     }
 }
예제 #15
0
 public function get()
 {
     $this->loadContact();
     switch ($_GET['cop']) {
         case 'logout':
             unset($_SESSION['Contact_User']);
             \PHPWS_Core::home();
             break;
         case 'manager_sign_up':
             if (!self::allowNewUserSignup()) {
                 $this->title = 'Sorry';
                 $this->content = '<p>New manager sign ups are not permitted at this time.</p>';
             } else {
                 $this->newManagerSetup();
             }
             break;
         case 'edit_property':
             $this->checkPermission();
             $this->loadProperty($this->contact->id);
             $this->editProperty($this->contact->id);
             break;
         case 'view_properties':
             $this->checkPermission();
             $this->title = "Properties list";
             $this->propertiesList($this->contact->id);
             break;
         case 'photo_form':
             $photo = new Photo();
             echo $photo->form();
             exit;
             break;
         case 'activate_property':
             $this->checkPermission();
             $this->loadProperty();
             $this->property->setActive(true);
             $this->property->save();
             \PHPWS_Core::goBack();
             break;
         case 'deactivate_property':
             $this->checkPermission();
             $this->loadProperty();
             $this->property->setActive(false);
             $this->property->save();
             \PHPWS_Core::goBack();
             break;
         case 'edit_contact':
             $this->checkPermission();
             $this->editContact();
             break;
         case 'delete_photo':
             // called via ajax
             $this->checkPermission();
             ob_start();
             $photo = new Photo($_GET['id']);
             $photo->delete();
             echo Photo::getThumbs($photo->pid);
             exit;
             break;
         case 'delete_property':
             $this->checkPermission();
             $this->loadProperty();
             // double security
             if ($this->property->contact_id == $this->contact->id) {
                 $this->property->delete();
             }
             \PHPWS_Core::goBack();
             break;
         case 'make_main':
             $photo = new Photo($_GET['id']);
             $photo->makeMain();
             exit;
             break;
         case 'update':
             $this->checkPermission();
             $this->loadProperty();
             $this->property->update();
             \PHPWS_Core::goBack();
             break;
         case 'checkUsername':
             $this->checkUsername();
             exit;
         case 'checkEmail':
             $this->checkEmail();
             exit;
     }
     $this->display();
 }
예제 #16
0
 public function adminMenu()
 {
     if (!Current_User::allow('signup')) {
         Current_User::disallow();
     }
     $this->loadPanel();
     $javascript = false;
     $this->loadMessage();
     $command = $_REQUEST['aop'];
     switch ($command) {
         case 'add_slot_peep':
             $javascript = true;
             $this->loadPeep();
             $this->loadForm('edit_peep');
             break;
         case 'menu':
             if (!isset($_GET['tab'])) {
                 $this->loadForm('list');
             } else {
                 $this->loadForm($_GET['tab']);
             }
             break;
         case 'delete_sheet':
             $this->loadSheet();
             $this->sheet->delete();
             $this->message = dgettext('signup', 'Signup sheet deleted.');
             $this->loadForm('list');
             break;
         case 'edit_sheet':
             $this->loadForm('edit_sheet');
             break;
         case 'edit_slot_peep':
             $javascript = true;
             $this->loadPeep();
             $this->loadForm('edit_peep');
             break;
         case 'edit_slot_popup':
             $javascript = true;
             $this->loadSlot();
             $this->loadForm('edit_slot_popup');
             break;
         case 'edit_peep_popup':
             $javascript = true;
             $this->loadSlot();
             $this->loadForm('edit_peep_popup');
             break;
         case 'print_applicants':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadSheet();
             $this->printApplicants();
             exit;
             break;
         case 'email_applicants':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadEmail();
             $this->loadSheet();
             $this->loadForm('email_applicants');
             break;
         case 'post_email':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadEmail();
             $this->loadSheet();
             if ($this->postEmail()) {
                 $this->sendEmail();
             } else {
                 $this->loadForm('email_applicants');
             }
             break;
         case 'slot_listing':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadSheet();
             $this->slotListing();
             exit;
             break;
         case 'csv_applicants':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadSheet();
             $this->csvExport();
             exit;
             break;
         case 'send_email':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->sendEmail();
             break;
         case 'edit_slots':
             $this->loadSheet();
             $this->loadForm('edit_slots');
             break;
         case 'search_slot':
             $this->searchSlots();
             break;
         case 'post_peep':
             $javascript = true;
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             if ($this->postPeep()) {
                 // Since added by an admin, automatically registered
                 $this->peep->registered = 1;
                 if (PHPWS_Error::logIfError($this->peep->save())) {
                     $this->forwardMessage(dgettext('signup', 'Error occurred when saving applicant.'));
                 } else {
                     $this->forwardMessage(dgettext('signup', 'Applicant saved successfully.'));
                 }
                 javascript('close_refresh');
                 Layout::nakedDisplay();
             } else {
                 $this->loadForm('edit_peep');
             }
             break;
         case 'post_sheet':
             $this->loadSheet();
             if (!Current_User::authorized('signup', 'edit_sheet', $this->sheet->id, 'sheet')) {
                 Current_User::disallow();
             }
             if ($this->postSheet()) {
                 if (!$this->sheet->id && PHPWS_Core::isPosted()) {
                     $this->message = dgettext('signup', 'Sheet previously posted.');
                     $this->loadForm('edit_sheet');
                 } else {
                     $new_sheet = !$this->sheet->id;
                     if (PHPWS_Error::logIfError($this->sheet->save())) {
                         $this->forwardMessage(dgettext('signup', 'Error occurred when saving sheet.'));
                         PHPWS_Core::reroute('index.php?module=signup&aop=list');
                     } else {
                         $this->forwardMessage(dgettext('signup', 'Sheet saved successfully.'));
                         if ($new_sheet) {
                             PHPWS_Core::reroute('index.php?module=signup&aop=edit_slots&sheet_id=' . $this->sheet->id);
                         } else {
                             $this->loadForm('list');
                         }
                     }
                 }
             } else {
                 $this->loadForm('edit_sheet');
             }
             break;
         case 'post_slot':
             $javascript = true;
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             if ($this->postSlot()) {
                 if (PHPWS_Error::logIfError($this->slot->save())) {
                     $this->forwardMessage(dgettext('signup', 'Error occurred when saving slot.'));
                 } else {
                     $this->forwardMessage(dgettext('signup', 'Slot saved successfully.'));
                 }
                 javascript('close_refresh');
                 Layout::nakedDisplay();
             } else {
                 $this->loadForm('edit_slot_popup');
             }
             break;
         case 'move_peep':
             $this->loadPeep();
             $result = $this->movePeep();
             if (PHPWS_Error::logIfError($result) || !$result) {
                 $this->forwardMessage(dgettext('signup', 'Error occurred when moving applicant. Slot may be full.'));
             }
             PHPWS_Core::goBack();
             break;
         case 'move_top':
             $this->loadSlot();
             $this->slot->moveTop();
             PHPWS_Core::goBack();
             break;
         case 'move_up':
             $this->loadSlot();
             $this->slot->moveUp();
             PHPWS_Core::goBack();
             break;
         case 'move_down':
             $this->loadSlot();
             $this->slot->moveDown();
             PHPWS_Core::goBack();
             break;
         case 'move_bottom':
             $this->loadSlot();
             $this->slot->moveBottom();
             PHPWS_Core::goBack();
             break;
         case 'delete_slot':
             $this->loadSlot();
             $this->deleteSlot();
             break;
         case 'delete_slot_peep':
             $this->loadPeep();
             $this->peep->delete();
             PHPWS_Core::goBack();
             break;
         case 'report':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadSheet();
             $this->loadForm('report');
             break;
         case 'alpha_order':
         case 'reset_slot_order':
             if (!Current_User::authorized('signup')) {
                 Current_User::disallow();
             }
             $this->loadSheet();
             $this->resetSlots($command);
             $this->forwardMessage(dgettext('signup', 'Slot order reset.'));
             PHPWS_Core::reroute('index.php?module=signup&sheet_id=' . $this->sheet->id . '&aop=edit_slots&authkey=' . Current_User::getAuthKey());
             break;
     }
     $tpl['TITLE'] = $this->title;
     $tpl['CONTENT'] = $this->content;
     $tpl['MESSAGE'] = $this->message;
     if ($javascript) {
         $fonts = '<link rel="stylesheet" type="text/css" href="' . PHPWS_SOURCE_HTTP . 'themes/bootstrap/font-awesome/css/font-awesome.min.css" />
         <link rel="stylesheet" type="text/css" href="' . PHPWS_SOURCE_HTTP . 'themes/bootstrap/css/bootstrap.min.css" />';
         \Layout::addJSHeader($fonts);
         Layout::nakedDisplay(PHPWS_Template::process($tpl, 'signup', 'main.tpl'));
     } else {
         $this->panel->setContent(PHPWS_Template::process($tpl, 'signup', 'main.tpl'));
         Layout::add(PHPWS_ControlPanel::display($this->panel->display()));
     }
 }
예제 #17
0
    $inventory = new InternshipInventory();
    $inventory->handleRequest();
    $content = $inventory->getContent();
} else {
    try {
        $inventory = new InternshipInventory();
        $inventory->handleRequest();
        $content = $inventory->getContent();
    } catch (\Exception $e) {
        try {
            \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, 'The Intern Inventory has experienced an error. The software engineers have been notified about this problem. We apologize for the inconvenience.');
            $message = formatException($e);
            emailError($message);
            \NQ::close();
            \Intern\UI\NotifyUI::display();
            \PHPWS_Core::goBack();
        } catch (Exception $e) {
            $message2 = formatException($e);
            echo "The Intern Inventory has experienced a major internal error.  Attempting to email an admin and then exit.";
            $message = "Something terrible has happened, and the exception catch-all threw an exception.\n\nThe first exception was:\n\n{$message}\n\nThe second exception was:\n\n{$message2}";
            mail('*****@*****.**', 'A Major Intern Inventory Error Has Occurred', $message);
            exit;
        }
    }
}
/**
 * Plug content into TopUI. Show notifications. Add Style.
 */
if (isset($content)) {
    if ($content === false) {
        \NQ::close();
예제 #18
0
 public function get()
 {
     $this->loadContact();
     switch ($_GET['cop']) {
         case 'logout':
             unset($_SESSION['Contact_User']);
             \PHPWS_Core::home();
             break;
         case 'edit_property':
             $this->checkPermission();
             $this->loadProperty($this->contact->id);
             $this->editProperty($this->contact->id);
             break;
         case 'view_properties':
             $this->checkPermission();
             $this->title = "Properties list";
             $this->propertiesList($this->contact->id);
             break;
         case 'photo_form':
             $photo = new Photo();
             echo $photo->form();
             exit;
             break;
         case 'activate_property':
             $this->checkPermission();
             $this->loadProperty();
             $this->property->setActive(true);
             $this->property->save();
             \PHPWS_Core::goBack();
             break;
         case 'deactivate_property':
             $this->checkPermission();
             $this->loadProperty();
             $this->property->setActive(false);
             $this->property->save();
             \PHPWS_Core::goBack();
             break;
         case 'edit_contact':
             $this->checkPermission();
             $this->editContact();
             break;
         case 'delete_photo':
             // called via ajax
             $this->checkPermission();
             ob_start();
             $photo = new Photo($_GET['id']);
             $photo->delete();
             echo Photo::getThumbs($photo->pid);
             exit;
             break;
         case 'delete_property':
             $this->checkPermission();
             $this->loadProperty();
             // double security
             if ($this->property->contact_id == $this->contact->id) {
                 $this->property->delete();
             }
             \PHPWS_Core::goBack();
             break;
         case 'make_main':
             $photo = new Photo($_GET['id']);
             $photo->makeMain();
             exit;
             break;
         case 'update':
             $this->checkPermission();
             $this->loadProperty();
             $this->property->update();
             \PHPWS_Core::goBack();
             break;
     }
     $this->display();
 }
예제 #19
0
 public function post()
 {
     switch ($_POST['aop']) {
         case 'save_property':
             if (!\Current_User::authorized('properties')) {
                 Current_User::disallow('Action not allowed');
             }
             $this->loadProperty();
             if ($this->property->post()) {
                 try {
                     $this->property->save();
                     $this->setCarryMessage('Property saved successfully.');
                 } catch (\Exception $e) {
                     $this->setCarryMessage($e->getMessage());
                 }
                 \PHPWS_Core::reroute('index.php?module=properties&aop=properties');
             } else {
                 $this->editProperty();
             }
             break;
         case 'save_contact':
             if (!\Current_User::authorized('properties')) {
                 Current_User::disallow();
             }
             $this->loadContact();
             if ($this->contact->post()) {
                 try {
                     $this->contact->save();
                     if (isset($_POST['contact_contact'])) {
                         $this->emailContact($this->contact->username, $_POST['password'], $_POST['email_address']);
                     }
                     $this->setCarryMessage('Contact saved successfully.');
                     \PHPWS_Core::reroute('index.php?module=properties&aop=contacts');
                 } catch (\Exception $e) {
                     $this->setCarryMessage($e->getMessage());
                     $this->editContact();
                 }
             } else {
                 $this->editContact();
             }
             break;
         case 'post_photo':
             try {
                 $photo = new Photo();
                 $photo->post();
                 $this->setCarryMessage('Photo uploaded');
                 if (isset($_POST['v'])) {
                     $property = new Property($photo->pid);
                     $url = './properties/id/' . $photo->pid . '/photo/1';
                 } else {
                     $url = 'index.php?module=properties&aop=properties&pid=' . $photo->pid;
                 }
                 \PHPWS_Core::reroute($url);
             } catch (\Exception $e) {
                 $this->setCarryMessage($e->getMessage());
                 \PHPWS_Core::goBack();
             }
             break;
         case 'post_settings':
             if ($this->postSettings()) {
                 $this->setCarryMessage('Settings updated');
                 \PHPWS_Core::reroute('index.php?module=properties&aop=settings');
             } else {
                 $this->settingsForm();
             }
             break;
         case 'block_post':
             $this->blockPost();
             $this->viewReported();
             break;
     }
     $this->display();
 }
예제 #20
0
 /**
  * Handles admin functions outside of file manager.
  * Expects an 'aop' command.
  */
 public function admin()
 {
     $javascript = false;
     // if true, sends to nakedDisplay
     $this->loadPanel();
     if (isset($_REQUEST['aop'])) {
         $aop = $_REQUEST['aop'];
     } else {
         $aop = $this->panel->getCurrentTab();
     }
     if (!Current_User::isLogged()) {
         Current_User::disallow();
         return;
     }
     if ($aop != 'edit_image' && $aop != 'get_images' && !Current_User::allow('filecabinet')) {
         Current_User::disallow();
         return;
     }
     // Requires an unrestricted user
     switch ($aop) {
         case 'delete_folder':
         case 'unpin':
             if (Current_User::isRestricted('filecabinet')) {
                 Current_User::disallow();
             }
     }
     switch ($aop) {
         case 'image':
             $this->panel->setCurrentTab('image');
             $this->title = dgettext('filecabinet', 'Image folders');
             $this->loadForms();
             $this->forms->getFolders(IMAGE_FOLDER);
             break;
         case 'multimedia':
             $this->panel->setCurrentTab('multimedia');
             $this->title = dgettext('filecabinet', 'Multimedia folders');
             $this->loadForms();
             $this->forms->getFolders(MULTIMEDIA_FOLDER);
             break;
         case 'add_folder':
             if (!Current_User::allow('filecabinet', 'edit_folders', null, null, true)) {
                 Current_User::disallow();
             }
             $javascript = true;
             $this->loadFolder();
             $this->addFolder();
             break;
         case 'classify':
             if (!Current_User::isDeity()) {
                 Current_User::errorPage();
             }
             $this->loadForms();
             $this->forms->classifyFileList();
             break;
         case 'classify_action':
             if (!Current_User::isDeity() || !Current_User::verifyAuthKey()) {
                 Current_User::errorPage();
             }
             $this->classifyAction();
             break;
         case 'classify_file':
             if (!Current_User::isDeity() || !Current_User::verifyAuthKey()) {
                 Current_User::disallow();
             }
             $this->loadForms();
             if (!empty($_POST['file_list'])) {
                 $this->forms->classifyFile($_POST['file_list']);
             } elseif (isset($_GET['file'])) {
                 $this->forms->classifyFile($_GET['file']);
             } else {
                 $this->forms->classifyFileList();
             }
             break;
         case 'post_classifications':
             if (!Current_User::isDeity()) {
                 Current_User::errorPage();
             }
             $result = $this->classifyFiles();
             if (is_array($result)) {
                 $this->message = implode('<br />', $result);
             }
             $this->loadForms();
             $this->forms->classifyFileList();
             break;
         case 'unpin':
             if (!Current_User::authorized('filecabinet')) {
                 Current_User::disallow();
             }
             Cabinet::unpinFolder();
             PHPWS_Core::goBack();
             break;
         case 'pin_form':
             $javascript = true;
             @($key_id = (int) $_GET['key_id']);
             if (!$key_id) {
                 javascript('close_refresh', array('refresh' => 0));
                 break;
             }
             $this->loadForms();
             $this->forms->pinFolder($key_id);
             break;
         case 'delete_folder':
             if (!Current_User::authorized('filecabinet', 'delete_folders', null, null, true)) {
                 Current_User::disallow();
             }
             $this->loadFolder();
             $this->folder->delete();
             PHPWS_Core::goBack();
             break;
         case 'delete_incoming':
             if (!Current_User::isDeity()) {
                 Current_User::errorPage();
             }
             $this->deleteIncoming();
             $this->loadForms();
             $this->forms->classifyFileList();
             break;
         case 'document':
             $this->panel->setCurrentTab('document');
             $this->title = dgettext('filecabinet', 'Document folders');
             $this->loadForms();
             $this->forms->getFolders(DOCUMENT_FOLDER);
             break;
         case 'edit_folder_modal':
             $javascript = true;
             $this->loadFolder();
             // permission check in function below
             $this->editFolder(false);
             break;
         case 'edit_folder':
             $javascript = true;
             $this->loadFolder();
             // permission check in function below
             $this->editFolder(true);
             break;
         case 'change_tn':
             $javascript = true;
             $this->changeTN();
             break;
         case 'post_thumbnail':
             $javascript = true;
             if ($this->postTN()) {
                 javascript('close_refresh');
             } else {
                 $this->message = dgettext('filecabinet', 'Could not save thumbnail image.');
                 $this->changeTN();
             }
             break;
         case 'post_folder':
             if (!Current_User::authorized('filecabinet', 'edit_folders')) {
                 Current_User::disallow();
             }
             $this->loadFolder();
             if ($this->folder->post()) {
                 if (!$this->folder->save()) {
                     self::setMessage(dgettext('filecabinet', 'Failed to create folder. Please check your logs.'));
                 }
             } else {
                 self::setMessage(dgettext('filecabinet', 'Failed to create folder. Please check your logs.'));
             }
             if (filter_input(INPUT_POST, 'js') == 1) {
                 javascript('close_refresh');
             } else {
                 PHPWS_Core::goBack();
             }
             break;
         case 'post_allowed_files':
             if (!Current_User::isDeity()) {
                 Current_User::disallow();
             }
             $this->loadForms();
             $this->forms->postAllowedFiles();
             $this->message = dgettext('filecabinet', 'File types saved.');
             $this->title = dgettext('filecabinet', 'Allowed file types');
             $this->content = $this->forms->fileTypes();
             break;
         case 'save_settings':
             if (!Current_User::isDeity()) {
                 Current_User::disallow();
             }
             $this->loadForms();
             $result = $this->forms->saveSettings();
             if (is_array($result)) {
                 $this->message = implode('<br />', $result);
             } else {
                 $this->message = dgettext('filecabinet', 'Settings saved.');
             }
         case 'settings':
             if (!Current_User::isDeity()) {
                 Current_User::disallow();
             }
             $this->loadForms();
             $this->title = dgettext('filecabinet', 'Settings');
             $this->content = $this->forms->settings();
             break;
         case 'view_folder':
             $this->viewFolder();
             break;
         case 'file_types':
             if (!Current_User::isDeity()) {
                 Current_User::disallow();
             }
             $this->loadForms();
             $this->title = dgettext('filecabinet', 'Allowed file types');
             $this->content = $this->forms->fileTypes();
             break;
         case 'fix_document_dir':
             if (!Current_User::isDeity() || !Current_User::verifyAuthKey()) {
                 Current_User::disallow();
             }
             if (strtolower($_GET['confirm']) == 'yes') {
                 $this->fixDocumentDirectories();
             }
             PHPWS_Core::reroute('index.php?module=filecabinet&tab=settings');
     }
     $template['TITLE'] =& $this->title;
     $template['MESSAGE'] =& $this->message;
     $template['CONTENT'] =& $this->content;
     if ($javascript) {
         $main = PHPWS_Template::process($template, 'filecabinet', 'javascript.tpl');
         Layout::nakedDisplay($main);
     } else {
         $main = PHPWS_Template::process($template, 'filecabinet', 'main.tpl');
         $this->panel->setContent($main);
         $finalPanel = $this->panel->display();
         Layout::add(PHPWS_ControlPanel::display($finalPanel));
     }
 }
예제 #21
0
 public function sendMessage($message, $location = null)
 {
     $_SESSION['Calendar_Admin_Message'] = $message;
     if (empty($location)) {
         PHPWS_Core::goBack();
     } else {
         PHPWS_Core::reroute('index.php?module=calendar&' . $location);
         exit;
     }
 }
예제 #22
0
 public function main()
 {
     $request = \Server::getCurrentRequest();
     $title = $content = $message = NULL;
     PHPWS_Core::initModClass('menu', 'Menu_Item.php');
     if (!Current_User::allow('menu')) {
         Current_User::disallow(dgettext('menu', 'User attempted access to Menu administration.'));
         return;
     }
     if (isset($_REQUEST['command'])) {
         $command = $_REQUEST['command'];
     } else {
         $command = 'list';
     }
     // This is the AJAX switch. Byproduct of old module design :(
     switch ($command) {
         case 'adminlinks':
             $this->adminLinks($request);
             exit;
         case 'delete_link':
             $this->deleteLink($request);
             exit;
         case 'key_select':
             $this->keySelect();
             exit;
         case 'post_link':
             $this->postLink($request);
             exit;
         case 'move_link':
             $this->moveLink($request);
             exit;
         case 'move_menu':
             $this->moveMenu($request);
             exit;
         case 'menu_options':
             $this->menuOptions($request);
             exit;
         case 'move_under':
             $this->moveUnder($request);
             exit;
         case 'transfer_link':
             $this->transferLink($request);
             exit;
         case 'add_key_link':
             $this->addKeyLink($request);
             exit;
         case 'remove_key_link':
             $this->removeKeyLink($request);
             exit;
         case 'delete_menu':
             $this->deleteMenu($request);
             exit;
         case 'post_menu':
             $this->postMenu($request);
             \PHPWS_Core::goBack();
             exit;
         case 'pin_menu':
             $this->pinMenu($request);
             exit;
         case 'unpin_menu':
             $this->unpinMenu($request);
             exit;
         case 'change_display_type':
             $this->changeDisplayType($request);
             exit;
         case 'menu_data':
             $this->menuData($request);
             exit;
         case 'pin_all':
             $this->menuPinAll($request);
             exit;
         case 'clear_image':
             $this->clearImage($request);
             exit;
         case 'update_character_limit':
             $this->updateCharacterLimit($request);
             exit;
         case 'new_link_menu':
             $this->updateNewLink($request);
             exit;
         case 'link_icons':
             $this->updateLinkIcons($request);
             exit;
         case 'force_shortcut':
             $this->forceShortcut();
             exit;
     }
     // This is the display switch or the HTML view switch
     switch ($command) {
         case 'list':
             $title = 'Menus';
             $content = $this->menuList();
             break;
         case 'reset_menu':
             if (!\Current_User::isDeity() && !\Current_User::authorized('menu')) {
                 throw new \Http\MethodNotAllowedException();
             }
             $this->resetMenu();
             PHPWS_Core::goBack();
             exit;
         default:
             throw new \Http\MethodNotAllowedException();
     }
     $tpl['title'] = $title;
     $tpl['content'] = $content;
     if (!empty($message)) {
         $tpl['message'] = $message;
     }
     $template = new \Template($tpl);
     $template->setModuleTemplate('menu', 'admin/main.html');
     Layout::add(PHPWS_ControlPanel::display($template->get()));
 }
예제 #23
0
 public static function admin()
 {
     if (!Current_User::allow('layout')) {
         Current_User::disallow();
     }
     PHPWS_Core::initModClass('controlpanel', 'Panel.php');
     $title = $content = null;
     $panel = Layout_Admin::adminPanel();
     if (isset($_REQUEST['command'])) {
         $command = $_REQUEST['command'];
     } else {
         $command = $panel->getCurrentTab();
     }
     switch ($command) {
         case 'arrange':
             $title = dgettext('layout', 'Arrange Layout');
             $content[] = Layout_Admin::arrangeForm();
             break;
         case 'turn_off_box_move':
             Layout::moveBoxes(false);
             PHPWS_Core::goBack();
             break;
         case 'post_style_change':
             $result = Layout_Admin::postStyleChange();
             if (PHPWS_Error::isError($result)) {
                 PHPWS_Error::log($result);
             }
             javascript('close_refresh');
             break;
         case 'reset_boxes':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             Layout::resetDefaultBoxes();
             unset($_SESSION['Layout_Settings']);
             PHPWS_Core::reroute('index.php?module=layout&action=admin&authkey=' . Current_User::getAuthKey());
             break;
         case 'move_boxes_on':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             Layout::moveBoxes(true);
             PHPWS_Core::goBack();
             break;
         case 'move_boxes_off':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             Layout::moveBoxes(false);
             PHPWS_Core::goBack();
             break;
         case 'confirmThemeChange':
             $title = dgettext('layout', 'Themes');
             if (isset($_POST['confirm'])) {
                 Layout_Admin::changeTheme();
                 PHPWS_Core::reroute('index.php?module=layout&action=admin&tab=theme');
                 exit;
             } else {
                 Layout::reset();
             }
             $content[] = Layout_Admin::adminThemes();
             break;
         case 'meta':
             $title = dgettext('layout', 'Edit Meta Tags');
             $content[] = Layout_Admin::metaForm();
             break;
         case 'clear_templates':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             $files = PHPWS_File::readDirectory(PHPWS_SOURCE_DIR . 'templates/cache', false, true);
             if (!empty($files) && is_array($files)) {
                 foreach ($files as $fn) {
                     $delete_cache_path = "templates/cache/{$fn}";
                     if (is_file($delete_cache_path)) {
                         unlink('templates/cache/' . $fn);
                     }
                 }
             }
             PHPWS_Core::goBack();
             break;
         case 'clear_cache':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             PHPWS_Cache::clearCache();
             PHPWS_Core::goBack();
             break;
         case 'moveBox':
             $result = Layout_Admin::moveBox();
             PHPWS_Error::logIfError($result);
             javascript('close_refresh');
             Layout::nakedDisplay();
             break;
         case 'postMeta':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             Layout_Admin::postMeta();
             if (isset($_POST['key_id'])) {
                 javascript('close_refresh');
                 Layout::nakedDisplay();
                 exit;
             }
             Layout::reset();
             $title = dgettext('layout', 'Edit Meta Tags');
             $template['MESSAGE'] = dgettext('layout', 'Meta Tags updated.');
             $content[] = Layout_Admin::metaForm();
             break;
         case 'demo_fail':
             unset($_SESSION['Layout_Settings']);
             Layout::checkSettings();
             PHPWS_Core::reroute('index.php?module=layout&amp;action=admin&amp;command=confirmThemeChange');
             break;
         case 'demo_theme':
             $title = dgettext('layout', 'Confirm Theme Change');
             $content[] = dgettext('layout', 'If you are happy with the change, click the appropiate button.');
             $content[] = dgettext('layout', 'Failure to respond in ten seconds, reverts phpWebSite to the default theme.');
             $content[] = Layout_Admin::confirmThemeChange();
             break;
         case 'postTheme':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             if ($_POST['default_theme'] != $_SESSION['Layout_Settings']->current_theme) {
                 Layout::reset($_POST['default_theme']);
                 PHPWS_Core::reroute('index.php?module=layout&action=admin&command=demo_theme&authkey=' . Current_User::getAuthKey());
             } else {
                 PHPWS_Settings::set('layout', 'include_css_order', (int) $_POST['include_css_order']);
                 PHPWS_Settings::save('layout');
                 $title = dgettext('layout', 'Themes');
                 $content[] = Layout_Admin::adminThemes();
             }
             break;
         case 'theme':
             $title = dgettext('layout', 'Themes');
             $content[] = Layout_Admin::adminThemes();
             break;
         case 'js_style_change':
             $content = Layout_Admin::jsStyleChange();
             if (empty($content)) {
                 javascript('close_refresh');
             }
             Layout::nakedDisplay($content, dgettext('layout', 'Change CSS'));
             break;
         case 'page_meta_tags':
             $content = Layout_Admin::pageMetaTags((int) $_REQUEST['key_id']);
             if (empty($content)) {
                 javascript('close_refresh');
             }
             Layout::nakedDisplay($content, dgettext('layout', 'Set meta tags'));
             break;
         case 'move_popup':
             if (!Current_User::authorized('layout')) {
                 Current_User::disallow();
             }
             Layout_Admin::moveBoxMenu();
             break;
     }
     $template['TITLE'] = $title;
     if (isset($content)) {
         $template['CONTENT'] = implode('<br />', $content);
     }
     if (isset($message)) {
         $template['MESSAGE'] = $message;
     }
     $final = PHPWS_Template::process($template, 'layout', 'main.tpl');
     $panel->setContent($final);
     Layout::add(PHPWS_ControlPanel::display($panel->display()));
 }
예제 #24
0
 /**
  * From Cabinet::admin.
  * Error checks and posts the image upload
  */
 public function postImageUpload()
 {
     // importPost in File_Common
     $result = $this->image->importPost('file_name');
     if (PHPWS_Error::isError($result)) {
         PHPWS_Error::log($result);
         $vars['timeout'] = '3';
         $vars['refresh'] = 0;
         $this->content = dgettext('filecabinet', 'An error occurred when trying to save your image.');
         javascript('close_refresh', $vars);
         return;
     } elseif ($result) {
         if ($this->image->id) {
             $this->image->rotate(false);
         }
         $result = $this->image->save();
         $this->updateResizes($this->image);
         if (PHPWS_Error::isError($result)) {
             PHPWS_Error::log($result);
             return false;
         }
         $this->image->moveToFolder();
         javascript('close_refresh');
         return true;
     } else {
         Cabinet::setMessage($this->image->printErrors());
         \PHPWS_Core::goBack();
     }
 }
예제 #25
0
 public static function route($action)
 {
     $title = $content = NULL;
     $message = Block_Admin::getMessage();
     if (isset($_REQUEST['block_id'])) {
         $block = new Block_Item($_REQUEST['block_id']);
     } else {
         $block = new Block_Item();
     }
     switch ($action) {
         case 'new':
             $title = dgettext('block', 'New Block');
             $content = Block_Admin::edit($block);
             break;
         case 'delete':
             if (!Current_User::authorized('block', 'delete_block', $_REQUEST['block_id'])) {
                 Current_User::disallow();
             }
             $block->kill();
             Block_Admin::sendMessage(dgettext('block', 'Block deleted.'));
             PHPWS_Core::goBack();
             break;
         case 'edit':
             if (!Current_User::authorized('block', 'edit_block', $_REQUEST['block_id'])) {
                 Current_User::disallow();
             }
             $title = 'Edit Block';
             $content = Block_Admin::edit($block);
             break;
         case 'pin_all':
             if (!Current_User::authorized('block', 'delete_block', $_REQUEST['block_id'])) {
                 Current_User::disallow();
             }
             Block_Admin::pinBlockAll($block);
             Block_Admin::sendMessage(dgettext('block', 'Block pinned'), 'list');
             break;
         case 'remove':
             if (!Current_User::authorized('block', 'edit_block', $_REQUEST['block_id'])) {
                 Current_User::disallow();
             }
             Block_Admin::removeBlock();
             PHPWS_Core::goBack();
             break;
         case 'postBlock':
             if (Block_Admin::postBlock($block)) {
                 $result = $block->save();
                 Block_Admin::sendMessage(dgettext('block', 'Block saved'), 'list');
             } else {
                 $message = dgettext('block', 'Block must have a title, some content, or a file attachment.');
                 $title = 'Edit Block';
                 $content = Block_Admin::edit($block);
             }
             break;
         case 'settings':
             $title = dgettext('block', 'Settings');
             $content = Block_Admin::settings();
             break;
         case 'post_settings':
             $result = Block_Admin::postSettings();
             if (is_array($result)) {
                 $message = implode('<br />', $result);
                 $title = dgettext('block', 'Settings');
                 $content = Block_Admin::settings();
             } else {
                 Block_Admin::sendMessage(dgettext('block', 'Settings saved'), 'settings');
             }
             break;
         case 'postJSBlock':
             if (Block_Admin::postBlock($block)) {
                 $result = $block->save();
                 if (PHPWS_Error::isError($result)) {
                     PHPWS_Error::log($result);
                 } elseif (isset($_REQUEST['key_id'])) {
                     Block_Admin::lockBlock($block->id, $_REQUEST['key_id']);
                 }
                 PHPWS_Core::goBack();
             } else {
                 $template['TITLE'] = dgettext('block', 'New Block');
                 $template['CONTENT'] = Block_Admin::edit($block, TRUE);
                 $template['MESSAGE'] = dgettext('block', 'Block must have a title, some content, or a file attachment.');
                 $content = PHPWS_Template::process($template, 'block', 'admin.tpl');
                 Layout::nakedDisplay($content);
             }
             break;
         case 'lock':
             $result = Block_Admin::lockBlock($_GET['block_id'], $_GET['key_id']);
             if (PHPWS_Error::isError($result)) {
                 PHPWS_Error::log($result);
             }
             PHPWS_Core::goBack();
             break;
         case 'list':
             $title = dgettext('block', 'Block list');
             $content = Block_Admin::blockList();
             break;
         case 'js_block_edit':
             $template['CONTENT'] = Block_Admin::edit($block, TRUE);
             echo PHPWS_Template::process($template, 'block', 'admin.tpl');
             exit;
             break;
     }
     $template['TITLE'] =& $title;
     if (isset($message)) {
         $template['MESSAGE'] =& $message;
     }
     $template['CONTENT'] =& $content;
     return PHPWS_Template::process($template, 'block', 'admin.tpl');
 }
 public function handleRequest()
 {
     /* Check if it is time to insert more terms into DB */
     if (Term::isTimeToUpdate()) {
         Term::doTermUpdate();
     }
     // Fetch the action from the REQUEST.
     if (!isset($_REQUEST['action'])) {
         $req = "";
     } else {
         $req = $_REQUEST['action'];
     }
     // Show requested page.
     switch ($req) {
         case 'example_form':
             header('Content-type: application/pdf');
             readfile(PHPWS_SOURCE_DIR . 'mod/intern/pdf/Internship_Example.pdf');
             exit;
             break;
         case 'edit_internship':
             PHPWS_Core::initModClass('intern', 'UI/InternshipUI.php');
             $view = new InternshipUI();
             $this->content = $view->display();
             break;
         case 'add_internship':
             PHPWS_Core::initModClass('intern', 'command/SaveInternship.php');
             $ctrl = new SaveInternship();
             $ctrl->execute();
             test('finished execute', 1);
             break;
         case 'search':
             PHPWS_Core::initModClass('intern', 'UI/SearchUI.php');
             $view = new SearchUI();
             $this->content = $view->display();
             break;
         case 'results':
             PHPWS_Core::initModClass('intern', 'UI/ResultsUI.php');
             $view = new ResultsUI();
             $this->content = $view->display();
             break;
         case DEPT_EDIT:
             PHPWS_Core::initModClass('intern', 'UI/DepartmentUI.php');
             PHPWS_Core::initModClass('intern', 'Department.php');
             if (isset($_REQUEST['add'])) {
                 /* Add department with the name in REQUEST */
                 if (isset($_REQUEST['name'])) {
                     Department::add($_REQUEST['name']);
                 } else {
                     NQ::simple('intern', INTERN_ERROR, "Department must have name.");
                 }
             } else {
                 if (isset($_REQUEST['rename'])) {
                     /* Rename dept with ID to new name that was passed in REQUEST */
                     if (isset($_REQUEST['id'])) {
                         $d = new Department($_REQUEST['id']);
                         $d->rename($_REQUEST['rename']);
                     } else {
                         NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot rename department.");
                     }
                 } else {
                     if (isset($_REQUEST['hide'])) {
                         /* Hide/Show department with ID passed in REQUEST. */
                         if (isset($_REQUEST['id'])) {
                             $d = new Department($_REQUEST['id']);
                             $d->hide($_REQUEST['hide'] == 1);
                         } else {
                             NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot hide department.");
                         }
                     } else {
                         if (isset($_REQUEST['del'])) {
                             /* Delete department with same ID passed in REQUEST. */
                             if (isset($_REQUEST['id'])) {
                                 $d = new Department($_REQUEST['id']);
                                 $d->del();
                             } else {
                                 NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot delete department.");
                             }
                         } else {
                             if (isset($_REQUEST['fDel'])) {
                                 /** for now... */
                                 NQ::simple('intern', INTERN_WARNING, 'Sorry, cannot forcefully delete a department.');
                             }
                         }
                     }
                 }
             }
             $view = new DepartmentUI();
             $this->content = $view->display();
             break;
         case GRAD_PROG_EDIT:
             PHPWS_Core::initModClass('intern', 'GradProgram.php');
             PHPWS_Core::initModClass('intern', 'UI/GradProgramUI.php');
             if (isset($_REQUEST['add'])) {
                 /* Add grad program with the name in REQUEST */
                 if (isset($_REQUEST['name'])) {
                     GradProgram::add($_REQUEST['name']);
                 } else {
                     NQ::simple('intern', INTERN_ERROR, "Grad Program must have name.");
                 }
             } else {
                 if (isset($_REQUEST['rename'])) {
                     /* Rename program with ID to new name that was passed in REQUEST */
                     if (isset($_REQUEST['id'])) {
                         $g = new GradProgram($_REQUEST['id']);
                         $g->rename($_REQUEST['rename']);
                     } else {
                         NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot rename graduate program.");
                     }
                 } else {
                     if (isset($_REQUEST['hide'])) {
                         /* Hide/Show program with ID passed in REQUEST. */
                         if (isset($_REQUEST['id'])) {
                             $g = new GradProgram($_REQUEST['id']);
                             $g->hide($_REQUEST['hide'] == 1);
                         } else {
                             NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot hide graduate program.");
                         }
                     } else {
                         if (isset($_REQUEST['del'])) {
                             /* Delete program with same ID passed in REQUEST. */
                             if (isset($_REQUEST['id'])) {
                                 $g = new GradProgram($_REQUEST['id']);
                                 $g->del();
                             } else {
                                 NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot delete graduate program.");
                             }
                         }
                     }
                 }
             }
             $view = new GradProgramUI();
             $this->content = $view->display();
             break;
         case MAJOR_EDIT:
             PHPWS_Core::initModClass('intern', 'UI/MajorUI.php');
             if (isset($_REQUEST['add'])) {
                 /* Add major with the name passed in REQUEST. */
                 if (isset($_REQUEST['name'])) {
                     Major::add($_REQUEST['name']);
                 } else {
                     NQ::simple('intern', INTERN_ERROR, "Major must have name.");
                 }
             } else {
                 if (isset($_REQUEST['rename'])) {
                     /* Rename major with ID to new name that was passed in REQUEST */
                     if (isset($_REQUEST['id'])) {
                         $m = new Major($_REQUEST['id']);
                         $m->rename($_REQUEST['rename']);
                     } else {
                         NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot rename major.");
                     }
                 } else {
                     if (isset($_REQUEST['hide'])) {
                         /* Hide major with ID passed in REQUEST. */
                         if (isset($_REQUEST['id'])) {
                             $m = new Major($_REQUEST['id']);
                             $m->hide($_REQUEST['hide'] == 1);
                         } else {
                             NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot hide major.");
                         }
                     } else {
                         if (isset($_REQUEST['del'])) {
                             /* Delete major with same ID passed in REQUEST. */
                             if (isset($_REQUEST['id'])) {
                                 $m = new Major($_REQUEST['id']);
                                 $m->del();
                             } else {
                                 NQ::simple('intern', INTERN_ERROR, "No ID given. Cannot delete major.");
                             }
                         }
                     }
                 }
             }
             $view = new MajorUI();
             $this->content = $view->display();
             break;
             /**
              * Matt additions!
              */
         /**
          * Matt additions!
          */
         case 'add_state':
             if (!Current_User::allow('intern', 'edit_state')) {
                 disallow();
             }
             PHPWS_Core::initModClass('intern', 'State.php');
             $state = new State($_GET['abbr']);
             $state->setActive(true);
             $state->save();
             exit;
             break;
         case 'remove_state':
             if (!Current_User::allow('intern', 'edit_state')) {
                 disallow();
             }
             PHPWS_Core::initModClass('intern', 'State.php');
             $state = new State($_GET['abbr']);
             $state->setActive(false);
             $state->save();
             exit;
             break;
         case STATE_EDIT:
             if (!Current_User::allow('intern', 'edit_state')) {
                 disallow();
             }
             PHPWS_Core::initModClass('intern', 'UI/StateUI.php');
             $view = new StateUI();
             $this->content = $view->display();
             break;
         case 'edit_admins':
             PHPWS_Core::initModClass('intern', 'UI/AdminUI.php');
             PHPWS_Core::initModClass('intern', 'Admin.php');
             PHPWS_Core::initModClass('intern', 'Department.php');
             if (isset($_REQUEST['add'])) {
                 // Add user in REQUEST to administrator list for the department in REQUEST.
                 Admin::add($_REQUEST['username'], $_REQUEST['department_id']);
             } else {
                 if (isset($_REQUEST['del'])) {
                     // Delete the user in REQUEST from department in REQUEST.
                     Admin::del($_REQUEST['username'], $_REQUEST['department_id']);
                 } else {
                     if (isset($_REQUEST['user_complete'])) {
                         $users = Admin::searchUsers($_REQUEST['term']);
                         echo json_encode($users);
                         exit;
                     }
                 }
             }
             $view = new AdminUI();
             $this->content = $view->display();
             break;
         case 'pdf':
             PHPWS_Core::initModClass('intern', 'InternshipFactory.php');
             PHPWS_Core::initModClass('intern', 'InternshipContractPdfView.php');
             PHPWS_Core::initModClass('intern', 'EmergencyContactFactory.php');
             $i = InternshipFactory::getInternshipById($_REQUEST['id']);
             $emgContacts = EmergencyContactFactory::getContactsForInternship($i);
             $pdfView = new InternshipContractPdfView($i, $emgContacts);
             $pdf = $pdfView->getPdf();
             $pdf->output();
             exit;
         case 'upload_document_form':
             PHPWS_Core::initModClass('intern', 'Intern_Document_Manager.php');
             $docManager = new Intern_Document_Manager();
             echo $docManager->edit();
             exit;
             break;
         case 'post_document_upload':
             PHPWS_Core::initModClass('intern', 'Intern_Document_Manager.php');
             $docManager = new Intern_Document_Manager();
             $docManager->postDocumentUpload();
             break;
         case 'delete_document':
             PHPWS_Core::initModClass('intern', 'Intern_Document.php');
             $doc = new Intern_Document($_REQUEST['doc_id']);
             $doc->delete();
             NQ::simple('intern', INTERN_SUCCESS, 'Document deleted.');
             NQ::close();
             PHPWS_Core::goBack();
             break;
         case 'addEmergencyContact':
             PHPWS_Core::initModClass('intern', 'command/AddEmergencyContact.php');
             $ctrl = new AddEmergencyContact();
             $ctrl->execute();
             break;
         case 'removeEmergencyContact':
             PHPWS_Core::initModClass('intern', 'command/RemoveEmergencyContact.php');
             $ctrl = new RemoveEmergencyContact();
             $ctrl->execute();
             break;
         case 'edit_faculty':
             PHPWS_Core::initModClass('intern', 'FacultyUI.php');
             $facultyUI = new FacultyUI();
             $this->content = $facultyUI->display();
             break;
         case 'getFacultyListForDept':
             PHPWS_Core::initModClass('intern', 'command/GetFacultyListForDept.php');
             $ctrl = new GetFacultyListForDept();
             $ctrl->execute();
             break;
         case 'restFacultyById':
             PHPWS_Core::initModClass('intern', 'command/RestFacultyById.php');
             $ctrl = new RestFacultyById();
             $ctrl->execute();
             break;
         case 'facultyDeptRest':
             PHPWS_Core::initModClass('intern', 'command/FacultyDeptRest.php');
             $ctrl = new FacultyDeptRest();
             $ctrl->execute();
             break;
         default:
             PHPWS_Core::initModClass('intern', 'UI/InternMenu.php');
             $menu = new InternMenu();
             $this->content = $menu->display();
             break;
     }
 }
예제 #27
0
파일: WikiPage.php 프로젝트: Jopperi/wiki
 function action()
 {
     switch ($_REQUEST['page_op']) {
         case 'edit':
             $template['TITLE'] = dgettext('wiki', 'Edit') . ' ' . $this->getTitle();
             $template['CONTENT'] = $this->edit();
             break;
         case 'save':
             $template['TITLE'] = dgettext('wiki', 'Edit') . ' ' . $this->getTitle();
             $template['CONTENT'] = $this->post();
             break;
         case 'delete':
             $template['TITLE'] = dgettext('wiki', 'Delete') . ' ' . $this->getTitle();
             $template['CONTENT'] = $this->kill();
             break;
         case 'raw':
             Header('Content-type: text/plain');
             echo $this->getPagetext(FALSE);
             exit;
             break;
         case 'print':
             Layout::nakedDisplay($this->view());
             break;
         case 'history':
             $template['TITLE'] = $this->getTitle();
             $template['CONTENT'] = $this->history();
             break;
         case 'viewold':
             PHPWS_Core::initModClass('wiki', 'OldWikiPage.php');
             $oldpage = new OldWikiPage($_REQUEST['id']);
             $template['TITLE'] = $this->getTitle();
             $template['CONTENT'] = $oldpage->view();
             break;
         case 'restore':
             PHPWS_Core::initModClass('wiki', 'OldWikiPage.php');
             $oldpage = new OldWikiPage($_REQUEST['id']);
             $oldpage->restore($this->hits);
             /* Does not return */
             break;
         case 'removeold':
             PHPWS_Core::initModClass('wiki', 'OldWikiPage.php');
             $oldpage = new OldWikiPage($_REQUEST['id']);
             $oldpage->remove();
             /* Does not return */
             break;
         case 'compare':
             PHPWS_Core::initModClass('wiki', 'WikiDiff.php');
             $wikiDiff = new WikiDiff(PHPWS_Settings::get('wiki', 'diff_type'));
             $template['TITLE'] = $this->getTitle();
             $template['CONTENT'] = $wikiDiff->diff($_REQUEST['oVer'], $_REQUEST['nVer']);
             break;
         case 'whatlinkshere':
             $template['TITLE'] = $this->getTitle();
             $template['CONTENT'] = $this->whatLinksHere();
             break;
         case 'move':
             $template['TITLE'] = dgettext('wiki', 'Move') . ' ' . $this->getTitle();
             $template['CONTENT'] = $this->move();
             break;
         case 'do_move':
             /* Function never returns: user will be redirected to new page. */
             $this->doMove();
             break;
         case 'discussion':
             $template['TITLE'] = $this->getTitle() . ' ' . dgettext('wiki', 'Discussion');
             $template['CONTENT'] = $this->discussion();
             break;
         case 'togglelock':
             $this->toggleLock();
             PHPWS_Core::goBack();
             break;
         default:
             $this->incHits();
             $template['TITLE'] = $this->getTitle();
             $template['CONTENT'] = $this->view();
             $template['CATEGORIES'] = $this->getCategories();
     }
     Layout::add(PHPWS_Template::process($template, 'wiki', 'box.tpl'), 'wiki', 'wiki_mod', TRUE);
 }
 public function handleRequest()
 {
     /* Check if it is time to insert more terms into DB */
     if (Term::isTimeToUpdate()) {
         Term::doTermUpdate();
     }
     // Fetch the action from the REQUEST.
     if (!isset($_REQUEST['action'])) {
         $req = "";
     } else {
         $req = $_REQUEST['action'];
     }
     // Show requested page.
     switch ($req) {
         case 'example_form':
             header('Content-type: application/pdf');
             readfile(\PHPWS_SOURCE_DIR . 'mod/intern/pdf/Internship_Example.pdf');
             exit;
             break;
         case 'ShowInternship':
             $ctrl = new Command\ShowInternship();
             $this->content = $ctrl->execute();
             break;
         case 'ShowAddInternship':
             $ctrl = new Command\ShowAddInternship();
             $this->content = $ctrl->execute()->getView()->render();
             break;
         case 'AddInternship':
             $ctrl = new Command\AddInternship();
             $ctrl->execute();
             break;
         case 'SaveInternship':
             $ctrl = new Command\SaveInternship();
             $ctrl->execute();
             break;
         case 'search':
             $view = new UI\SearchUI();
             $this->content = $view->display();
             break;
         case 'results':
             $view = new UI\ResultsUI();
             $this->content = $view->display();
             break;
         case 'showEditDept':
             $view = new UI\DepartmentUI();
             $this->content = $view->display();
             break;
         case 'edit_dept':
             if (isset($_REQUEST['add'])) {
                 /* Add department with the name in REQUEST */
                 if (isset($_REQUEST['name'])) {
                     Department::add($_REQUEST['name']);
                 } else {
                     \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "Department must have name.");
                 }
             } else {
                 if (isset($_REQUEST['rename'])) {
                     /* Rename dept with ID to new name that was passed in REQUEST */
                     if (isset($_REQUEST['id'])) {
                         $d = new Department($_REQUEST['id']);
                         $d->rename($_REQUEST['rename']);
                     } else {
                         \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot rename department.");
                     }
                 } else {
                     if (isset($_REQUEST['hide'])) {
                         /* Hide/Show department with ID passed in REQUEST. */
                         if (isset($_REQUEST['id'])) {
                             $d = new Department($_REQUEST['id']);
                             $d->hide($_REQUEST['hide'] == 1);
                         } else {
                             \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot hide department.");
                         }
                     } else {
                         if (isset($_REQUEST['del'])) {
                             /* Delete department with same ID passed in REQUEST. */
                             if (isset($_REQUEST['id'])) {
                                 $d = new Department($_REQUEST['id']);
                                 $d->del();
                             } else {
                                 \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot delete department.");
                             }
                         }
                     }
                 }
             }
             \PHPWS_Core::reroute('index.php?module=intern&action=showEditDept');
             break;
         case 'showEditGradProgs':
             $view = new UI\GradProgramUI();
             $this->content = $view->display();
             break;
         case 'edit_grad':
             //TODO Separate these into their own controllers
             if (isset($_REQUEST['add'])) {
                 /* Add grad program with the name in REQUEST */
                 if (isset($_REQUEST['name'])) {
                     GradProgram::add($_REQUEST['name']);
                 } else {
                     \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "Grad Program must have name.");
                 }
             } else {
                 if (isset($_REQUEST['rename'])) {
                     /* Rename program with ID to new name that was passed in REQUEST */
                     if (isset($_REQUEST['id'])) {
                         $g = new GradProgram($_REQUEST['id']);
                         $g->rename($_REQUEST['rename']);
                     } else {
                         \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot rename graduate program.");
                     }
                 } else {
                     if (isset($_REQUEST['hide'])) {
                         /* Hide/Show program with ID passed in REQUEST. */
                         if (isset($_REQUEST['id'])) {
                             $g = new GradProgram($_REQUEST['id']);
                             $g->hide($_REQUEST['hide'] == 1);
                         } else {
                             \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot hide graduate program.");
                         }
                     } else {
                         if (isset($_REQUEST['del'])) {
                             /* Delete program with same ID passed in REQUEST. */
                             if (isset($_REQUEST['id'])) {
                                 $g = new GradProgram($_REQUEST['id']);
                                 $g->del();
                             } else {
                                 \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot delete graduate program.");
                             }
                         }
                     }
                 }
             }
             \PHPWS_Core::reroute('index.php?module=intern&action=showEditGradProgs');
             break;
         case 'showEditMajors':
             $view = new UI\MajorUI();
             $this->content = $view->display();
             break;
         case 'edit_major':
             // TODO: Break these into their own commands
             if (isset($_REQUEST['add'])) {
                 /* Add major with the name passed in REQUEST. */
                 if (isset($_REQUEST['name'])) {
                     Major::add($_REQUEST['name']);
                 } else {
                     \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "Major must have name.");
                 }
             } else {
                 if (isset($_REQUEST['rename'])) {
                     /* Rename major with ID to new name that was passed in REQUEST */
                     if (isset($_REQUEST['id'])) {
                         $m = new Major($_REQUEST['id']);
                         $m->rename($_REQUEST['rename']);
                     } else {
                         \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot rename major.");
                     }
                 } else {
                     if (isset($_REQUEST['hide'])) {
                         /* Hide major with ID passed in REQUEST. */
                         if (isset($_REQUEST['id'])) {
                             $m = new Major($_REQUEST['id']);
                             $m->hide($_REQUEST['hide'] == 1);
                         } else {
                             \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot hide major.");
                         }
                     } else {
                         if (isset($_REQUEST['del'])) {
                             /* Delete major with same ID passed in REQUEST. */
                             if (isset($_REQUEST['id'])) {
                                 $m = new Major($_REQUEST['id']);
                                 $m->del();
                             } else {
                                 \NQ::simple('intern', \Intern\UI\NotifyUI::ERROR, "No ID given. Cannot delete major.");
                             }
                         }
                     }
                 }
             }
             \PHPWS_Core::reroute('index.php?module=intern&action=showEditMajors');
             break;
             /**
              * Matt additions!
              */
         /**
          * Matt additions!
          */
         case 'add_state':
             if (!Current_User::allow('intern', 'edit_state')) {
                 disallow();
             }
             $state = new State($_GET['abbr']);
             $state->setActive(true);
             $state->save();
             exit;
             break;
         case 'remove_state':
             if (!Current_User::allow('intern', 'edit_state')) {
                 disallow();
             }
             $state = new State($_GET['abbr']);
             $state->setActive(false);
             $state->save();
             exit;
             break;
         case 'edit_states':
             if (!Current_User::allow('intern', 'edit_state')) {
                 disallow();
             }
             $view = new StateUI();
             $this->content = $view->display();
             break;
         case 'showEditAdmins':
             $view = new UI\AdminUI();
             $this->content = $view->display();
             break;
         case 'edit_admins':
             if (isset($_REQUEST['add'])) {
                 // Add user in REQUEST to administrator list for the department in REQUEST.
                 Admin::add($_REQUEST['username'], $_REQUEST['department_id']);
             } else {
                 if (isset($_REQUEST['del'])) {
                     // Delete the user in REQUEST from department in REQUEST.
                     Admin::del($_REQUEST['username'], $_REQUEST['department_id']);
                 } else {
                     if (isset($_REQUEST['user_complete'])) {
                         $users = Admin::searchUsers($_REQUEST['term']);
                         echo json_encode($users);
                         exit;
                     }
                 }
             }
             $view = new UI\AdminUI();
             $this->content = $view->display();
             break;
         case 'pdf':
             $i = InternshipFactory::getInternshipById($_REQUEST['internship_id']);
             $emgContacts = EmergencyContactFactory::getContactsForInternship($i);
             $pdfView = new InternshipContractPdfView($i, $emgContacts);
             $pdf = $pdfView->getPdf();
             $pdf->output();
             exit;
         case 'upload_document_form':
             $docManager = new DocumentManager();
             echo $docManager->edit();
             exit;
             break;
         case 'post_document_upload':
             $docManager = new DocumentManager();
             $docManager->postDocumentUpload();
             break;
         case 'delete_document':
             $doc = new InternDocument($_REQUEST['doc_id']);
             $doc->delete();
             \NQ::simple('intern', \Intern\UI\NotifyUI::SUCCESS, 'Document deleted.');
             \NQ::close();
             \PHPWS_Core::goBack();
             break;
         case 'addEmergencyContact':
             $ctrl = new Command\AddEmergencyContact();
             $ctrl->execute();
             break;
         case 'removeEmergencyContact':
             $ctrl = new Command\RemoveEmergencyContact();
             $ctrl->execute();
             break;
         case 'edit_faculty':
             $facultyUI = new UI\FacultyUI();
             $this->content = $facultyUI->display();
             break;
         case 'getFacultyListForDept':
             $ctrl = new Command\GetFacultyListForDept();
             $ctrl->execute();
             break;
         case 'restFacultyById':
             $ctrl = new Command\RestFacultyById();
             $ctrl->execute();
             break;
         case 'facultyDeptRest':
             $ctrl = new Command\FacultyDeptRest();
             $ctrl->execute();
             break;
         case 'GetSearchSuggestions':
             $ctrl = new Command\GetSearchSuggestions();
             $ctrl->execute();
             break;
         case 'GetAvailableStates':
             $ctrl = new Command\GetAvailableStates();
             $ctrl->execute();
             break;
         case 'GetAvailableCountries':
             $ctrl = new Command\GetAvailableCountries();
             $ctrl->execute();
             break;
         case 'GetDepartments':
             $ctrl = new Command\GetDepartments();
             $ctrl->execute();
             break;
         case 'GetAvailableTerms':
             $ctrl = new Command\GetAvailableTerms();
             $ctrl->execute();
             break;
         default:
             $menu = new UI\InternMenu();
             $this->content = $menu->display();
             break;
     }
 }