summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Tänzer <neo@nhng.de>2010-08-03 21:31:41 +0200
committerMichael Tänzer <neo@nhng.de>2010-08-03 21:31:41 +0200
commit5d25f6837871beae4067ce9a58e5fe664b3715e4 (patch)
treebb31261bf7c15b6314eb8a2944f49db8e8b4bfcf
parentbe39a06a110df826ced9fa6bd03e79ccd17f695c (diff)
parent1a0d0c99c39054ee42508fede5a87ade5f2bcdca (diff)
downloadcacert-mgr-5d25f6837871beae4067ce9a58e5fe664b3715e4.tar.gz
cacert-mgr-5d25f6837871beae4067ce9a58e5fe664b3715e4.tar.xz
cacert-mgr-5d25f6837871beae4067ce9a58e5fe664b3715e4.zip
Merge branch 'master' of ssh://git-cacert.it-sls.de/var/cache/git/cacert-mgr
-rw-r--r--manager/.settings/org.eclipse.php.core.prefs2
-rw-r--r--manager/application/controllers/MailController.php77
-rw-r--r--manager/application/views/scripts/mail/delete.phtml12
-rw-r--r--manager/application/views/scripts/mail/full.phtml37
-rw-r--r--manager/application/views/scripts/mail/index.phtml37
-rw-r--r--manager/public/css/mail.css24
-rw-r--r--manager/public/img/delete_icon.jpgbin0 -> 13842 bytes
-rw-r--r--manager/public/js/mail_redirect.js8
8 files changed, 182 insertions, 15 deletions
diff --git a/manager/.settings/org.eclipse.php.core.prefs b/manager/.settings/org.eclipse.php.core.prefs
index cbc9cef..d2d74b0 100644
--- a/manager/.settings/org.eclipse.php.core.prefs
+++ b/manager/.settings/org.eclipse.php.core.prefs
@@ -1,4 +1,4 @@
-#Wed Mar 31 11:13:35 CEST 2010
+#Thu Apr 22 14:01:49 CEST 2010
eclipse.preferences.version=1
include_path=0;/ca-mgr (mawaunix)\u00055;org.zend.php.framework.CONTAINER
phpVersion=php5
diff --git a/manager/application/controllers/MailController.php b/manager/application/controllers/MailController.php
index 5ee84d4..1ba73e2 100644
--- a/manager/application/controllers/MailController.php
+++ b/manager/application/controllers/MailController.php
@@ -12,11 +12,53 @@ class MailController extends Zend_Controller_Action
public function init()
{
/* Initialize action controller here */
+ $session = Zend_Registry::get('session');
+ $auth = $session->authdata['authed_permissions'];
+
+ $action = $this->getRequest()->getActionName();
+
+ $this->view->leftNav('<a href="' .
+ $this->view->url(array('controller' => 'mail', 'action' => 'index'), 'default', true) .
+ '"' . (($action == 'index')?' class="active"':'') . '>' . I18n::_('View own Mails') . '</a>', Zend_View_Helper_Placeholder_Container_Abstract::SET, 1);
+ if ($session->authdata['authed_role'] == 'Admin') {
+ $this->view->leftNav('<a href="' .
+ $this->view->url(array('controller' => 'mail', 'action' => 'full'), 'default', true) .
+ '"' . (($action == 'full')?' class="active"':'') . '>' . I18n::_('View all Mails') . '</a>', Zend_View_Helper_Placeholder_Container_Abstract::SET, 2);
+ }
}
public function indexAction()
{
$config = Zend_Registry::get('config');
+ $session = Zend_Registry::get('session');
+
+ $imap_config = $config->imap;
+ $imap = imapConnection::getInstance('cacert', $imap_config);
+ $imap->imapSwitchMbox('INBOX');
+
+ $ck = $imap->imapCheck();
+
+ $headers = array();
+ for ($i=0; $i < $ck->Nmsgs; $i++) {
+ $header = $imap->imapHeader($i+1);
+
+ // skip all emails that do not belong to the user
+ if ($header->toaddress != $session->authdata['authed_username'])
+ continue;
+
+ $header->uid = $imap->imapUID($i+1);
+ $header->detailslink = $this->view->url(array('controller' => 'mail', 'action' => 'read', 'uid' => $header->uid), 'default', true);
+ $header->deletelink = $this->view->url(array('controller' => 'mail', 'action' => 'delete', 'uid' => $header->uid), 'default', true);
+ $headers[] = $header;
+ }
+
+ $this->view->headers = $headers;
+ }
+
+ public function fullAction()
+ {
+ $config = Zend_Registry::get('config');
+
$imap_config = $config->imap;
$imap = imapConnection::getInstance('cacert', $imap_config);
$imap->imapSwitchMbox('INBOX');
@@ -28,6 +70,7 @@ class MailController extends Zend_Controller_Action
$header = $imap->imapHeader($i+1);
$header->uid = $imap->imapUID($i+1);
$header->detailslink = $this->view->url(array('controller' => 'mail', 'action' => 'read', 'uid' => $header->uid), 'default', true);
+ $header->deletelink = $this->view->url(array('controller' => 'mail', 'action' => 'delete', 'uid' => $header->uid), 'default', true);
$headers[] = $header;
}
@@ -47,4 +90,38 @@ class MailController extends Zend_Controller_Action
$this->view->mail_body = $body;
}
+
+ /**
+ * delete message with unique id
+ */
+ public function deleteAction()
+ {
+ $config = Zend_Registry::get('config');
+ $uid = $this->getRequest()->getParam('uid', -1);
+ $this->view->returnto = $_SERVER['HTTP_REFERER'];
+
+ if ($uid == -1) {
+ $this->view->message = I18n::_('You did not select an email for deletion');
+ }
+ elseif ($this->view->returnto == '') {
+ $this->view->message = I18n::_('Please use the delete icons in the mail inventory to delete mails');
+ }
+ else {
+ $imap_config = $config->imap;
+ $imap = imapConnection::getInstance('cacert', $imap_config);
+ $imap->imapSwitchMbox('INBOX');
+
+ $header = $imap->imapFetchOverview($uid);
+
+ $session = Zend_Registry::get('session');
+ if ($session->authdata['authed_role'] != 'Admin' && $header->to != $session->authdata['authed_username']) {
+ $this->view->message = I18n::_('This message does not belong to you');
+ }
+ else {
+ $imap->imapDelete($uid);
+ $imap->imapExpunge();
+ $this->view->message = I18n::_('Message deleted');
+ }
+ }
+ }
}
diff --git a/manager/application/views/scripts/mail/delete.phtml b/manager/application/views/scripts/mail/delete.phtml
new file mode 100644
index 0000000..d01cec8
--- /dev/null
+++ b/manager/application/views/scripts/mail/delete.phtml
@@ -0,0 +1,12 @@
+<?php
+/**
+ * @author markus
+ * $Id: index.phtml 25 2009-12-02 15:43:21Z markus $
+ */
+$this->headLink()->appendStylesheet('/css/mail.css');
+$this->headScript()->appendFile('/js/mail_redirect.js');
+?>
+<H1><?php print I18n::_('Delete Mail'); ?></H1>
+<?php
+print $this->message;
+print '<input type="hidden" id="returnto" value="' . $this->returnto . '">';
diff --git a/manager/application/views/scripts/mail/full.phtml b/manager/application/views/scripts/mail/full.phtml
new file mode 100644
index 0000000..ba1986b
--- /dev/null
+++ b/manager/application/views/scripts/mail/full.phtml
@@ -0,0 +1,37 @@
+<?php
+/**
+ * @author markus
+ * $Id: index.phtml 25 2009-12-02 15:43:21Z markus $
+ */
+$this->headLink()->appendStylesheet('/css/mail.css');
+?>
+<H1><?php print I18n::_('View all Mail'); ?></H1>
+<?php
+if (count($this->headers) == 0) {
+ print I18n::_('You currently have no mail.');
+}
+else {
+?>
+<table>
+ <tr>
+ <th class="col1"><?php print I18n::_('From');?></th>
+ <th class="col2"><?php print I18n::_('To');?></th>
+ <th class="col3"><?php print I18n::_('Subject');?></th>
+ <th class="col4"><?php print I18n::_('Date');?></th>
+ <th class="col5"><?php print I18n::_('Size');?></th>
+ <th class="col6"><?php print I18n::_('Del');?></th>
+ </tr>
+<?php
+ foreach ($this->headers as $header) {
+ print " <tr>\n";
+ print " <td><a href=\"" . $header->detailslink . "\">" . $header->fromaddress . "</a></td>";
+ print " <td>" . $header->toaddress . "</td>";
+ print " <td>" . $header->subject . "</td>";
+ print " <td>" . $header->date . "</td>";
+ print " <td>" . $header->Size . "</td>";
+ print " <td><a class=\"delete\" href=\"" . $header->deletelink . "\"><img src=\"/img/delete_icon.jpg\"></a></td>";
+ print " </tr>\n";
+ }
+}
+?>
+</table>
diff --git a/manager/application/views/scripts/mail/index.phtml b/manager/application/views/scripts/mail/index.phtml
index faf6bd4..85288e4 100644
--- a/manager/application/views/scripts/mail/index.phtml
+++ b/manager/application/views/scripts/mail/index.phtml
@@ -5,24 +5,33 @@
*/
$this->headLink()->appendStylesheet('/css/mail.css');
?>
-<H1><?php print I18n::_('Mail'); ?></H1>
+<H1><?php print I18n::_('View own Mail'); ?></H1>
+<?php
+if (count($this->headers) == 0) {
+ print I18n::_('You currently have no mail.');
+}
+else {
+?>
<table>
<tr>
- <th><?php print I18n::_('From');?></th>
- <th><?php print I18n::_('To');?></th>
- <th><?php print I18n::_('Subject');?></th>
- <th><?php print I18n::_('Date');?></th>
- <th><?php print I18n::_('Size');?></th>
+ <th class="col1"><?php print I18n::_('From');?></th>
+ <th class="col2"><?php print I18n::_('To');?></th>
+ <th class="col3"><?php print I18n::_('Subject');?></th>
+ <th class="col4"><?php print I18n::_('Date');?></th>
+ <th class="col5"><?php print I18n::_('Size');?></th>
+ <th class="col6"><?php print I18n::_('Del');?></th>
</tr>
<?php
-foreach ($this->headers as $header) {
- print " <tr>\n";
- print " <td><a href=\"" . $header->detailslink . "\">" . $header->fromaddress . "</a></td>";
- print " <td>" . $header->toaddress . "</td>";
- print " <td>" . $header->subject . "</td>";
- print " <td>" . $header->date . "</td>";
- print " <td>" . $header->Size . "</td>";
- print " </tr>\n";
+ foreach ($this->headers as $header) {
+ print " <tr>\n";
+ print " <td><a href=\"" . $header->detailslink . "\">" . $header->fromaddress . "</a></td>";
+ print " <td>" . $header->toaddress . "</td>";
+ print " <td>" . $header->subject . "</td>";
+ print " <td>" . $header->date . "</td>";
+ print " <td>" . $header->Size . "</td>";
+ print " <td><a class=\"delete\" href=\"" . $header->deletelink . "\"><img src=\"/img/delete_icon.jpg\"></a></td>";
+ print " </tr>\n";
+ }
}
?>
</table>
diff --git a/manager/public/css/mail.css b/manager/public/css/mail.css
index 6cd0274..4ce23f5 100644
--- a/manager/public/css/mail.css
+++ b/manager/public/css/mail.css
@@ -15,6 +15,25 @@
padding: 3px;
}
+#content .col1 {
+ width: 170px;
+}
+#content .col2 {
+ width: 170px;
+}
+#content .col3 {
+ width: 165px;
+}
+#content .col4 {
+ width: 170px;
+}
+#content .col5 {
+ width: 50px;
+}
+#content .col6 {
+ width: 30px;
+}
+
#content a {
text-decoration: none;
color: #000000;
@@ -23,3 +42,8 @@
#content a:hover {
color: #777777;
}
+
+#content a.delete {
+ background-color: #ffffff;
+ color: white;
+}
diff --git a/manager/public/img/delete_icon.jpg b/manager/public/img/delete_icon.jpg
new file mode 100644
index 0000000..f6ce52e
--- /dev/null
+++ b/manager/public/img/delete_icon.jpg
Binary files differ
diff --git a/manager/public/js/mail_redirect.js b/manager/public/js/mail_redirect.js
new file mode 100644
index 0000000..a60e58f
--- /dev/null
+++ b/manager/public/js/mail_redirect.js
@@ -0,0 +1,8 @@
+var delay = 2000;
+setTimeout('redirect()', delay);
+
+function redirect() {
+ var returnto = document.getElementById('returnto');
+
+ window.location = returnto.value;
+} \ No newline at end of file