forked from GNUsocial/gnu-social
add UI for blocking a user from a group
This commit is contained in:
parent
10b7e8ff69
commit
b6dee88e5d
@ -139,14 +139,180 @@ class GroupmembersAction extends Action
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class GroupMemberList extends ProfileList {
|
class GroupMemberList extends ProfileList
|
||||||
|
{
|
||||||
var $group = null;
|
var $group = null;
|
||||||
|
|
||||||
function __construct($profile, $group=null, $action=null)
|
function __construct($profile, $group, $action)
|
||||||
{
|
{
|
||||||
parent::__construct($profile, $action);
|
parent::__construct($profile, $action);
|
||||||
|
|
||||||
$this->group = $group;
|
$this->group = $group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function newListItem($profile)
|
||||||
|
{
|
||||||
|
return new GroupMemberListItem($profile, $this->group, $this->action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GroupMemberListItem extends ProfileListItem
|
||||||
|
{
|
||||||
|
var $group = null;
|
||||||
|
|
||||||
|
function __construct($profile, $group, $action)
|
||||||
|
{
|
||||||
|
parent::__construct($profile, $action);
|
||||||
|
|
||||||
|
$this->group = $group;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showActions()
|
||||||
|
{
|
||||||
|
$this->startActions();
|
||||||
|
$this->showSubscribeButton();
|
||||||
|
$this->showGroupBlockForm();
|
||||||
|
$this->endActions();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showGroupBlockForm()
|
||||||
|
{
|
||||||
|
$user = common_current_user();
|
||||||
|
|
||||||
|
if (!empty($user) && $user->id != $this->profile->id && $user->isAdmin($this->group)) {
|
||||||
|
$bf = new GroupBlockForm($this->out, $this->profile,
|
||||||
|
array('action' => 'groupmembers',
|
||||||
|
'nickname' => $this->group->nickname));
|
||||||
|
$bf->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Form for blocking a user from a group
|
||||||
|
*
|
||||||
|
* @category Form
|
||||||
|
* @package Laconica
|
||||||
|
* @author Evan Prodromou <evan@controlyourself.ca>
|
||||||
|
* @author Sarven Capadisli <csarven@controlyourself.ca>
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
|
* @link http://laconi.ca/
|
||||||
|
*
|
||||||
|
* @see BlockForm
|
||||||
|
*/
|
||||||
|
|
||||||
|
class GroupBlockForm extends Form
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Profile of user to block
|
||||||
|
*/
|
||||||
|
|
||||||
|
var $profile = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group to block the user from
|
||||||
|
*/
|
||||||
|
|
||||||
|
var $group = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return-to args
|
||||||
|
*/
|
||||||
|
|
||||||
|
var $args = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param HTMLOutputter $out output channel
|
||||||
|
* @param Profile $profile profile of user to block
|
||||||
|
* @param User_group $group group to block user from
|
||||||
|
* @param array $args return-to args
|
||||||
|
*/
|
||||||
|
|
||||||
|
function __construct($out=null, $profile=null, $group=null, $args=null)
|
||||||
|
{
|
||||||
|
parent::__construct($out);
|
||||||
|
|
||||||
|
$this->profile = $profile;
|
||||||
|
$this->group = $group;
|
||||||
|
$this->args = $args;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID of the form
|
||||||
|
*
|
||||||
|
* @return int ID of the form
|
||||||
|
*/
|
||||||
|
|
||||||
|
function id()
|
||||||
|
{
|
||||||
|
// This should be unique for the page.
|
||||||
|
return 'block-' . $this->profile->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* class of the form
|
||||||
|
*
|
||||||
|
* @return string class of the form
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formClass()
|
||||||
|
{
|
||||||
|
return 'form_group_block';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action of the form
|
||||||
|
*
|
||||||
|
* @return string URL of the action
|
||||||
|
*/
|
||||||
|
|
||||||
|
function action()
|
||||||
|
{
|
||||||
|
return common_local_url('groupblock');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legend of the Form
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function formLegend()
|
||||||
|
{
|
||||||
|
$this->out->element('legend', null, _('Block user from group'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data elements of the form
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formData()
|
||||||
|
{
|
||||||
|
$this->out->hidden('blockto-' . $this->profile->id,
|
||||||
|
$this->profile->id,
|
||||||
|
'blockto');
|
||||||
|
$this->out->hidden('blockgroup-' . $this->group->id,
|
||||||
|
$this->group->id,
|
||||||
|
'blockgroup');
|
||||||
|
if ($this->args) {
|
||||||
|
foreach ($this->args as $k => $v) {
|
||||||
|
$this->out->hidden('returnto-' . $k, $v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action elements
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formActions()
|
||||||
|
{
|
||||||
|
$this->out->submit('submit', _('Block'), 'submit', null, _('Block this user'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user