forked from GNUsocial/gnu-social
make admins of groups
This commit is contained in:
parent
dda4493af7
commit
2b8a767770
@ -171,10 +171,26 @@ class GroupMemberListItem extends ProfileListItem
|
|||||||
{
|
{
|
||||||
$this->startActions();
|
$this->startActions();
|
||||||
$this->showSubscribeButton();
|
$this->showSubscribeButton();
|
||||||
|
$this->showMakeAdminForm();
|
||||||
$this->showGroupBlockForm();
|
$this->showGroupBlockForm();
|
||||||
$this->endActions();
|
$this->endActions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showMakeAdminForm()
|
||||||
|
{
|
||||||
|
$user = common_current_user();
|
||||||
|
|
||||||
|
if (!empty($user) && $user->id != $this->profile->id && $user->isAdmin($this->group) &&
|
||||||
|
!$this->profile->isAdmin($this->group)) {
|
||||||
|
$this->out->elementStart('li', 'entity_make_admin');
|
||||||
|
$maf = new MakeAdminForm($this->out, $this->profile, $this->group,
|
||||||
|
array('action' => 'groupmembers',
|
||||||
|
'nickname' => $this->group->nickname));
|
||||||
|
$maf->show();
|
||||||
|
$this->out->elementEnd('li');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
function showGroupBlockForm()
|
function showGroupBlockForm()
|
||||||
{
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
@ -318,3 +334,130 @@ class GroupBlockForm extends Form
|
|||||||
$this->out->submit('submit', _('Block'), 'submit', null, _('Block this user'));
|
$this->out->submit('submit', _('Block'), 'submit', null, _('Block this user'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Form for making a user an admin for 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/
|
||||||
|
*/
|
||||||
|
|
||||||
|
class MakeAdminForm 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 'makeadmin-' . $this->profile->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* class of the form
|
||||||
|
*
|
||||||
|
* @return string class of the form
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formClass()
|
||||||
|
{
|
||||||
|
return 'form_make_admin';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action of the form
|
||||||
|
*
|
||||||
|
* @return string URL of the action
|
||||||
|
*/
|
||||||
|
|
||||||
|
function action()
|
||||||
|
{
|
||||||
|
return common_local_url('makeadmin', array('nickname' => $this->group->nickname));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legend of the Form
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formLegend()
|
||||||
|
{
|
||||||
|
$this->out->element('legend', null, _('Make user an admin of the group'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data elements of the form
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formData()
|
||||||
|
{
|
||||||
|
$this->out->hidden('profileid-' . $this->profile->id,
|
||||||
|
$this->profile->id,
|
||||||
|
'profileid');
|
||||||
|
$this->out->hidden('groupid-' . $this->group->id,
|
||||||
|
$this->group->id,
|
||||||
|
'groupid');
|
||||||
|
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', _('Make Admin'), 'submit', null, _('Make this user an admin'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -233,6 +233,10 @@ class Router
|
|||||||
array('action' => 'blockedfromgroup'),
|
array('action' => 'blockedfromgroup'),
|
||||||
array('nickname' => '[a-zA-Z0-9]+'));
|
array('nickname' => '[a-zA-Z0-9]+'));
|
||||||
|
|
||||||
|
$m->connect('group/:nickname/makeadmin',
|
||||||
|
array('action' => 'makeadmin'),
|
||||||
|
array('nickname' => '[a-zA-Z0-9]+'));
|
||||||
|
|
||||||
$m->connect('group/:id/id',
|
$m->connect('group/:id/id',
|
||||||
array('action' => 'groupbyid'),
|
array('action' => 'groupbyid'),
|
||||||
array('id' => '[0-9]+'));
|
array('id' => '[0-9]+'));
|
||||||
|
Loading…
Reference in New Issue
Block a user