add forms for silence, sandbox, delete user

This commit is contained in:
Evan Prodromou 2009-11-15 16:00:29 +01:00
parent c9475c76a8
commit d24ed193e7
6 changed files with 439 additions and 6 deletions

79
lib/deleteuserform.php Normal file
View File

@ -0,0 +1,79 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Form for deleting a user
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Form for deleting a user
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
*/
class DeleteUserForm extends ProfileActionForm
{
/**
* Action this form provides
*
* @return string Name of the action, lowercased.
*/
function target()
{
return 'deleteuser';
}
/**
* Title of the form
*
* @return string Title of the form, internationalized
*/
function title()
{
return _('Delete');
}
/**
* Description of the form
*
* @return string description of the form, internationalized
*/
function description()
{
return _('Delete this user');
}
}

80
lib/sandboxform.php Normal file
View File

@ -0,0 +1,80 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Form for sandboxing a user
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Form for sandboxing a user
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see UnSandboxForm
*/
class SandboxForm extends ProfileActionForm
{
/**
* Action this form provides
*
* @return string Name of the action, lowercased.
*/
function target()
{
return 'sandbox';
}
/**
* Title of the form
*
* @return string Title of the form, internationalized
*/
function title()
{
return _('Sandbox');
}
/**
* Description of the form
*
* @return string description of the form, internationalized
*/
function description()
{
return _('Sandbox this user');
}
}

80
lib/silenceform.php Normal file
View File

@ -0,0 +1,80 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Form for silencing a user
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Form for silencing a user
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see UnSilenceForm
*/
class SilenceForm extends Form
{
/**
* Action this form provides
*
* @return string Name of the action, lowercased.
*/
function target()
{
return 'silence';
}
/**
* Title of the form
*
* @return string Title of the form, internationalized
*/
function title()
{
return _('Silence');
}
/**
* Description of the form
*
* @return string description of the form, internationalized
*/
function description()
{
return _('Silence this user');
}
}

82
lib/unsandboxform.php Normal file
View File

@ -0,0 +1,82 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Form for unsandboxing a user
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Form for unsandboxing a user
*
* Removes the "sandboxed" role for a user.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see UnSandboxForm
*/
class UnsandboxForm extends Form
{
/**
* Action this form provides
*
* @return string Name of the action, lowercased.
*/
function target()
{
return 'unsandbox';
}
/**
* Title of the form
*
* @return string Title of the form, internationalized
*/
function title()
{
return _('Unsandbox');
}
/**
* Description of the form
*
* @return string description of the form, internationalized
*/
function description()
{
return _('Unsandbox this user');
}
}

80
lib/unsilenceform.php Normal file
View File

@ -0,0 +1,80 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Form for unsilencing a user
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Form for unsilencing a user
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see UnSilenceForm
*/
class UnSilenceForm extends Form
{
/**
* Action this form provides
*
* @return string Name of the action, lowercased.
*/
function target()
{
return 'unsilence';
}
/**
* Title of the form
*
* @return string Title of the form, internationalized
*/
function title()
{
return _('Unsilence');
}
/**
* Description of the form
*
* @return string description of the form, internationalized
*/
function description()
{
return _('Unsilence this user');
}
}

View File

@ -283,22 +283,54 @@ class UserProfile extends Widget
}
}
// return-to args, so we don't have to keep re-writing them
$r2args = array('action' => 'showstream',
'nickname' => $this->profile->nickname);
// block/unblock
$blocked = $cur->hasBlocked($this->profile);
$this->out->elementStart('li', 'entity_block');
if ($blocked) {
$ubf = new UnblockForm($this->out, $this->profile,
array('action' => 'showstream',
'nickname' => $this->profile->nickname));
$ubf = new UnblockForm($this->out, $this->profile, $r2args);
$ubf->show();
} else {
$bf = new BlockForm($this->out, $this->profile,
array('action' => 'showstream',
'nickname' => $this->profile->nickname));
$bf = new BlockForm($this->out, $this->profile, $r2args);
$bf->show();
}
$this->out->elementEnd('li');
if ($cur->hasRight(Right::SANDBOXUSER)) {
$this->out->elementStart('li', 'entity_sandbox');
if ($this->user->isSandboxed()) {
$usf = new UnSandboxForm($this->out, $this->profile, $r2args);
$usf->show();
} else {
$sf = new SandboxForm($this->out, $this->profile, $r2args);
$sf->show();
}
$this->out->elementEnd('li');
}
if ($cur->hasRight(Right::SILENCEUSER)) {
$this->out->elementStart('li', 'entity_silence');
if ($this->user->isSilenced()) {
$usf = new UnSilenceForm($this->out, $this->profile, $r2args);
$usf->show();
} else {
$sf = new SilenceForm($this->out, $this->profile, $r2args);
$sf->show();
}
$this->out->elementEnd('li');
}
if ($cur->hasRight(Right::DELETEUSER)) {
$this->out->elementStart('li', 'entity_delete');
$df = DeleteUserForm($this->out, $this->profile, $r2args);
$df->show();
$this->out->elementEnd('li');
}
}
}