summaryrefslogtreecommitdiff
path: root/actions/deletenotice.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-09-27 21:10:17 -0400
committerEvan Prodromou <evan@status.net>2009-09-27 21:10:17 -0400
commita8d1b7e9c26b4449a4a1e0e250f9b6766b2d8e62 (patch)
tree607945c89007cfd1b2500cb6e14d8d1618de6d5f /actions/deletenotice.php
parentf9bb35369a45fad45f4ca9fc8e03e49a512a5a29 (diff)
Merge DeleteAction class into DeletenoticeAction
The DeleteAction class checked for notice information, and only had one subclass: DeletenoticeAction. I couldn't figure out any other class that would subclass it, so I combined the two into a single class.
Diffstat (limited to 'actions/deletenotice.php')
-rw-r--r--actions/deletenotice.php37
1 files changed, 33 insertions, 4 deletions
diff --git a/actions/deletenotice.php b/actions/deletenotice.php
index 3d040f2fa..617fa9c17 100644
--- a/actions/deletenotice.php
+++ b/actions/deletenotice.php
@@ -32,15 +32,44 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
-require_once INSTALLDIR.'/lib/deleteaction.php';
-
-class DeletenoticeAction extends DeleteAction
+class DeletenoticeAction extends Action
{
- var $error = null;
+ var $error = null;
+ var $user = null;
+ var $notice = null;
+ var $profile = null;
+ var $user_profile = null;
+
+ function prepare($args)
+ {
+ parent::prepare($args);
+
+ $this->user = common_current_user();
+ $notice_id = $this->trimmed('notice');
+ $this->notice = Notice::staticGet($notice_id);
+
+ if (!$this->notice) {
+ common_user_error(_('No such notice.'));
+ exit;
+ }
+
+ $this->profile = $this->notice->getProfile();
+ $this->user_profile = $this->user->getProfile();
+
+ return true;
+ }
function handle($args)
{
parent::handle($args);
+
+ if (!common_logged_in()) {
+ common_user_error(_('Not logged in.'));
+ exit;
+ } else if ($this->notice->profile_id != $this->user_profile->id) {
+ common_user_error(_('Can\'t delete this notice.'));
+ exit;
+ }
// XXX: Ajax!
if ($_SERVER['REQUEST_METHOD'] == 'POST') {