<?php
-
/**
* folders.php
*
* scripts which do most of the work. Also handles the Special
* Folders.
*
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright 1999-2009 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
*/
+/** This is the folders page */
+define('PAGE_NAME', 'folders');
+
/**
* Include the SquirrelMail initialization file.
*/
require_once(SM_PATH . 'functions/folder_manip.php');
require_once(SM_PATH . 'functions/forms.php');
-displayPageHeader($color, 'None');
+displayPageHeader($color);
/* get globals we may need */
-
-sqgetGlobalVar('username', $username, SQ_SESSION);
-sqgetGlobalVar('key', $key, SQ_COOKIE);
sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
-sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION);
-
sqgetGlobalVar('smaction', $action, SQ_POST);
+sqgetGlobalVar('smtoken', $submitted_token, SQ_POST, '');
/* end of get globals */
-$imapConnection = sqimap_login ($username, $key, $imapServerAddress, $imapPort, 0);
+$imapConnection = sqimap_login ($username, false, $imapServerAddress, $imapPort, 0);
/* switch to the right function based on what the user selected */
if ( sqgetGlobalVar('smaction', $action, SQ_POST) ) {
-
switch ($action)
{
case 'create':
+
+ // first, validate security token
+ sm_validate_security_token($submitted_token, 3600, TRUE);
+
sqgetGlobalVar('folder_name', $folder_name, SQ_POST);
sqgetGlobalVar('subfolder', $subfolder, SQ_POST);
sqgetGlobalVar('contain_subs', $contain_subs, SQ_POST);
sqgetGlobalVar('old_name', $old_name, SQ_POST);
folders_rename_getname($imapConnection, $delimiter, $old_name);
} else {
+
+ // first, validate security token
+ sm_validate_security_token($submitted_token, 3600, TRUE);
+
sqgetGlobalVar('orig', $orig, SQ_POST);
sqgetGlobalVar('old_name', $old_name, SQ_POST);
folders_rename_do($imapConnection, $delimiter, $orig, $old_name, $new_name);
}
sqgetGlobalVar('folder_name', $folder_name, SQ_POST);
if ( sqgetGlobalVar('confirmed', $dummy, SQ_POST) ) {
+
+ // first, validate security token
+ sm_validate_security_token($submitted_token, 3600, TRUE);
+
folders_delete_do($imapConnection, $delimiter, $folder_name);
$td_str = _("Deleted folder successfully.");
} else {
}
break;
case 'subscribe':
+
+ // first, validate security token
+ sm_validate_security_token($submitted_token, 3600, TRUE);
+
sqgetGlobalVar('folder_names', $folder_names, SQ_POST);
folders_subscribe($imapConnection, $folder_names);
$td_str = _("Subscribed successfully.");
break;
case 'unsubscribe':
+
+ // first, validate security token
+ sm_validate_security_token($submitted_token, 3600, TRUE);
+
sqgetGlobalVar('folder_names', $folder_names, SQ_POST);
folders_unsubscribe($imapConnection, $folder_names);
$td_str = _("Unsubscribed successfully.");
break;
default:
- // TODO: add hook for plugin action processing.
- $td_str = '';
+// TODO: this is a new hook for plugin action processing that has not been TESTED.
+ $td_str = do_hook('folder_action', $action);
break;
}
}
+if (isset($td_str)) {
+ $oTemplate->assign('note', htmlspecialchars($td_str));
+ $oTemplate->display('note.tpl');
+}
+
$boxes = sqimap_mailbox_list($imapConnection,true);
/** CREATING FOLDERS **/
$rendel_folder_list = sqimap_mailbox_option_list($imapConnection, 0, $skip_folders, $boxes, NULL, true);
-$subbox_option_list = '';
+$subbox_option_list = array();
if ($show_only_subscribed_folders && !$no_list_for_subscribe) {
// FIXME: fix subscription options when top folder is not subscribed and sub folder is subscribed
+
// TODO: use checkboxes instead of select options.
+ // DONE Steve Brown 2006-08-08
/** SUBSCRIBE TO FOLDERS **/
$boxes_all = sqimap_mailbox_list_all ($imapConnection);
// so we keep only the unsubscribed ones.
foreach ($boxes_all as $box_a) {
- $use_folder = true;
- foreach ( $boxes as $box ) {
- if ($box_a['unformatted'] == $box['unformatted'] ||
- $box_a['unformatted-dm'] == $folder_prefix ) {
- $use_folder = false;
- }
- }
-
- if ($use_folder) {
- $box_enc = htmlspecialchars($box_a['unformatted-dm']);
- $box_disp = htmlspecialchars(imap_utf7_decode_local($box_a['unformatted-disp']));
- $subbox_option_list .= '<option value="' . $box_enc . '">'.$box_disp."</option>\n";
- }
+ $use_folder = true;
+ foreach ( $boxes as $box ) {
+ if ($box_a['unformatted'] == $box['unformatted'] ||
+ $box_a['unformatted-dm'] == $folder_prefix ) {
+ $use_folder = false;
+ }
+ }
+
+ if ($use_folder) {
+ $box_enc = htmlspecialchars($box_a['unformatted-dm']);
+ $box_disp = htmlspecialchars(imap_utf7_decode_local($box_a['unformatted-disp']));
+ $subbox_option_list[] = array( 'Value' => $box_enc, 'Display' => $box_disp);
+ }
}
}
sqimap_logout($imapConnection);
-$oTemplate->assign('td_str', @$td_str);
-$oTemplate->assign('color', $color);
+$oTemplate->assign('show_subfolders_option', $show_contain_subfolders_option);
+$oTemplate->assign('show_only_subscribed_folders', $show_only_subscribed_folders==1);
+$oTemplate->assign('no_list_for_subscribe', $no_list_for_subscribe);
+
$oTemplate->assign('mbx_option_list', $mbx_option_list);
-$oTemplate->assign('show_contain_subfolders_option', $show_contain_subfolders_option);
-$oTemplate->assign('show_only_subscribed_folders', $show_only_subscribed_folders);
$oTemplate->assign('rendel_folder_list', $rendel_folder_list);
$oTemplate->assign('subbox_option_list', $subbox_option_list);
-$oTemplate->assign('no_list_for_subscribe', $no_list_for_subscribe);
$oTemplate->display('folder_manip.tpl');
$oTemplate->display('footer.tpl');
-