forked from GNUsocial/gnu-social
[UserFlag] Increase strict typing of main file
Run php-cs-fixer Correct case of class name onDeleteRelated event handlers
This commit is contained in:
parent
871f3c4bfe
commit
67780ca4a9
@ -21,12 +21,13 @@
|
|||||||
*
|
*
|
||||||
* @category Plugin
|
* @category Plugin
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @copyright 2009 StatusNet, Inc.
|
* @copyright 2009 StatusNet, Inc.
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('STATUSNET')) {
|
if (!defined('STATUSNET')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -36,9 +37,11 @@ if (!defined('STATUSNET')) {
|
|||||||
*
|
*
|
||||||
* @category Plugin
|
* @category Plugin
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @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
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class UserFlagPlugin extends Plugin
|
class UserFlagPlugin extends Plugin
|
||||||
{
|
{
|
||||||
@ -55,9 +58,9 @@ class UserFlagPlugin extends Plugin
|
|||||||
* Ensures that the user_flag_profile table exists
|
* Ensures that the user_flag_profile table exists
|
||||||
* and has the right columns.
|
* and has the right columns.
|
||||||
*
|
*
|
||||||
* @return boolean hook return
|
* @return bool hook return
|
||||||
*/
|
*/
|
||||||
function onCheckSchema()
|
public function onCheckSchema(): bool
|
||||||
{
|
{
|
||||||
$schema = Schema::get();
|
$schema = Schema::get();
|
||||||
|
|
||||||
@ -71,9 +74,9 @@ class UserFlagPlugin extends Plugin
|
|||||||
*
|
*
|
||||||
* @param URLMapper $m URL mapper for this hit
|
* @param URLMapper $m URL mapper for this hit
|
||||||
*
|
*
|
||||||
* @return boolean hook return
|
* @return bool hook return
|
||||||
*/
|
*/
|
||||||
public function onRouterInitialized(URLMapper $m)
|
public function onRouterInitialized(URLMapper $m): bool
|
||||||
{
|
{
|
||||||
$m->connect('main/flag/profile', ['action' => 'flagprofile']);
|
$m->connect('main/flag/profile', ['action' => 'flagprofile']);
|
||||||
$m->connect('main/flag/clear', ['action' => 'clearflag']);
|
$m->connect('main/flag/clear', ['action' => 'clearflag']);
|
||||||
@ -84,16 +87,19 @@ class UserFlagPlugin extends Plugin
|
|||||||
/**
|
/**
|
||||||
* Add a 'flag' button to profile page
|
* Add a 'flag' button to profile page
|
||||||
*
|
*
|
||||||
* @param Action $action The action being called
|
* @param Action $action The action being called
|
||||||
* @param Profile $profile Profile being shown
|
* @param Profile $profile Profile being shown
|
||||||
*
|
*
|
||||||
* @return boolean hook result
|
* @return bool hook result
|
||||||
*/
|
*/
|
||||||
function onEndProfilePageActionsElements($action, $profile)
|
public function onEndProfilePageActionsElements(Action $action, Profile $profile): bool
|
||||||
{
|
{
|
||||||
$this->showFlagButton($action, $profile,
|
$this->showFlagButton(
|
||||||
array('action' => 'showstream',
|
$action,
|
||||||
'nickname' => $profile->nickname));
|
$profile,
|
||||||
|
['action' => 'showstream',
|
||||||
|
'nickname' => $profile->nickname, ]
|
||||||
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -103,12 +109,12 @@ class UserFlagPlugin extends Plugin
|
|||||||
*
|
*
|
||||||
* @param ProfileListItem $item item being shown
|
* @param ProfileListItem $item item being shown
|
||||||
*
|
*
|
||||||
* @return boolean hook result
|
* @return bool hook result
|
||||||
*/
|
*/
|
||||||
function onEndProfileListItemActionElements($item)
|
public function onEndProfileListItemActionElements(ProfileListItem $item): bool
|
||||||
{
|
{
|
||||||
list($action, $args) = $item->action->returnToArgs();
|
list($action, $args) = $item->action->returnToArgs();
|
||||||
$args['action'] = $action;
|
$args['action'] = $action;
|
||||||
$this->showFlagButton($item->action, $item->profile, $args);
|
$this->showFlagButton($item->action, $item->profile, $args);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -118,16 +124,15 @@ class UserFlagPlugin extends Plugin
|
|||||||
* Actually output a flag button. If the target profile has already been
|
* Actually output a flag button. If the target profile has already been
|
||||||
* flagged by the current user, a null-action faux button is shown.
|
* flagged by the current user, a null-action faux button is shown.
|
||||||
*
|
*
|
||||||
* @param Action $action
|
* @param Action $action
|
||||||
* @param Profile $profile
|
* @param Profile $profile
|
||||||
* @param array $returnToArgs
|
* @param array $returnToArgs
|
||||||
*/
|
*/
|
||||||
protected function showFlagButton($action, $profile, $returnToArgs)
|
protected function showFlagButton(Action $action, Profile $profile, array $returnToArgs): array
|
||||||
{
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
|
|
||||||
if (!empty($user) && ($user->id != $profile->id)) {
|
if (!empty($user) && ($user->id != $profile->id)) {
|
||||||
|
|
||||||
$action->elementStart('li', 'entity_flag');
|
$action->elementStart('li', 'entity_flag');
|
||||||
|
|
||||||
if (User_flag_profile::exists($profile->id, $user->id)) {
|
if (User_flag_profile::exists($profile->id, $user->id)) {
|
||||||
@ -149,13 +154,13 @@ class UserFlagPlugin extends Plugin
|
|||||||
* We define extra rights; this function checks to see if a
|
* We define extra rights; this function checks to see if a
|
||||||
* user has one of them.
|
* user has one of them.
|
||||||
*
|
*
|
||||||
* @param User $user User being checked
|
* @param User $user User being checked
|
||||||
* @param string $right Right we're checking
|
* @param string $right Right we're checking
|
||||||
* @param boolean &$result out, result of the check
|
* @param bool &$result out, result of the check
|
||||||
*
|
*
|
||||||
* @return boolean hook result
|
* @return bool hook result
|
||||||
*/
|
*/
|
||||||
function onUserRightsCheck($user, $right, &$result)
|
public function onUserRightsCheck(User $user, string $right, bool &$result): bool
|
||||||
{
|
{
|
||||||
switch ($right) {
|
switch ($right) {
|
||||||
case self::REVIEWFLAGS:
|
case self::REVIEWFLAGS:
|
||||||
@ -175,13 +180,14 @@ class UserFlagPlugin extends Plugin
|
|||||||
* @param User $user User doing the block
|
* @param User $user User doing the block
|
||||||
* @param Profile $profile Profile being blocked
|
* @param Profile $profile Profile being blocked
|
||||||
*
|
*
|
||||||
* @return boolean hook result
|
* @return bool hook result
|
||||||
*/
|
*/
|
||||||
function onEndBlockProfile($user, $profile)
|
public function onEndBlockProfile(User $user, Profile $profile): bool
|
||||||
{
|
{
|
||||||
if ($this->flagOnBlock && !User_flag_profile::exists($profile->id,
|
if ($this->flagOnBlock && !User_flag_profile::exists(
|
||||||
$user->id)) {
|
$profile->id,
|
||||||
|
$user->id
|
||||||
|
)) {
|
||||||
User_flag_profile::create($user->id, $profile->id);
|
User_flag_profile::create($user->id, $profile->id);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -193,14 +199,14 @@ class UserFlagPlugin extends Plugin
|
|||||||
* This prevents breakage of the admin profile flag UI.
|
* This prevents breakage of the admin profile flag UI.
|
||||||
*
|
*
|
||||||
* @param Profile $profile
|
* @param Profile $profile
|
||||||
* @param array &$related list of related tables; entries
|
* @param array &$related list of related tables; entries
|
||||||
* with matching profile_id will be deleted.
|
* with matching profile_id will be deleted.
|
||||||
*
|
*
|
||||||
* @return boolean hook result
|
* @return bool hook result
|
||||||
*/
|
*/
|
||||||
function onProfileDeleteRelated($profile, &$related)
|
public function onProfileDeleteRelated(Profile $profile, array &$related): bool
|
||||||
{
|
{
|
||||||
$related[] = 'user_flag_profile';
|
$related[] = 'User_flag_profile';
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,15 +214,15 @@ class UserFlagPlugin extends Plugin
|
|||||||
* Ensure that flag entries created by a user are deleted
|
* Ensure that flag entries created by a user are deleted
|
||||||
* when that user gets deleted.
|
* when that user gets deleted.
|
||||||
*
|
*
|
||||||
* @param User $user
|
* @param User $user
|
||||||
* @param array &$related list of related tables; entries
|
* @param array &$related list of related tables; entries
|
||||||
* with matching user_id will be deleted.
|
* with matching user_id will be deleted.
|
||||||
*
|
*
|
||||||
* @return boolean hook result
|
* @return bool hook result
|
||||||
*/
|
*/
|
||||||
function onUserDeleteRelated($user, &$related)
|
public function onUserDeleteRelated(User $user, array &$related): bool
|
||||||
{
|
{
|
||||||
$related[] = 'user_flag_profile';
|
$related[] = 'User_flag_profile';
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,19 +233,18 @@ class UserFlagPlugin extends Plugin
|
|||||||
*
|
*
|
||||||
* @param array &$versions array of version data arrays; see EVENTS.txt
|
* @param array &$versions array of version data arrays; see EVENTS.txt
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return bool hook value
|
||||||
*/
|
*/
|
||||||
public function onPluginVersion(array &$versions): bool
|
public function onPluginVersion(array &$versions): bool
|
||||||
{
|
{
|
||||||
$url = GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/UserFlag';
|
$url = GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/UserFlag';
|
||||||
|
|
||||||
$versions[] = array('name' => 'UserFlag',
|
$versions[] = ['name' => 'UserFlag',
|
||||||
'version' => self::PLUGIN_VERSION,
|
'version' => self::PLUGIN_VERSION,
|
||||||
'author' => 'Evan Prodromou',
|
'author' => 'Evan Prodromou',
|
||||||
'homepage' => $url,
|
'homepage' => $url,
|
||||||
'rawdescription' =>
|
'rawdescription' => // TRANS: Plugin description.
|
||||||
// TRANS: Plugin description.
|
_m('This plugin allows flagging of profiles for review and reviewing flagged profiles.'), ];
|
||||||
_m('This plugin allows flagging of profiles for review and reviewing flagged profiles.'));
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*
|
*
|
||||||
* StatusNet - the distributed open-source microblogging tool
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
* Copyright (C) 2009, StatusNet, Inc.
|
* Copyright (C) 2009, StatusNet, Inc.
|
||||||
@ -26,7 +28,6 @@
|
|||||||
* You should have received a copy of the GNU Affero General Public License
|
* 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/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('STATUSNET')) {
|
if (!defined('STATUSNET')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -36,23 +37,25 @@ if (!defined('STATUSNET')) {
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class AdminprofileflagAction extends Action
|
class AdminprofileflagAction extends Action
|
||||||
{
|
{
|
||||||
var $page = null;
|
public $page;
|
||||||
var $profiles = null;
|
public $profiles;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Take arguments for running
|
* Take arguments for running
|
||||||
*
|
*
|
||||||
* @param array $args $_REQUEST args
|
* @param array $args $_REQUEST args
|
||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return bool success flag
|
||||||
*/
|
*/
|
||||||
function prepare(array $args = array())
|
public function prepare(array $args = [])
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
|
|
||||||
@ -77,7 +80,7 @@ class AdminprofileflagAction extends Action
|
|||||||
// Cookie theft is too easy; we require automatic
|
// Cookie theft is too easy; we require automatic
|
||||||
// logins to re-authenticate before admining the site
|
// logins to re-authenticate before admining the site
|
||||||
common_set_returnto($this->selfUrl());
|
common_set_returnto($this->selfUrl());
|
||||||
if (Event::handle('RedirectToLogin', array($this, $user))) {
|
if (Event::handle('RedirectToLogin', [$this, $user])) {
|
||||||
common_redirect(common_local_url('login'), 303);
|
common_redirect(common_local_url('login'), 303);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -107,7 +110,7 @@ class AdminprofileflagAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
parent::handle();
|
parent::handle();
|
||||||
|
|
||||||
@ -119,7 +122,7 @@ class AdminprofileflagAction extends Action
|
|||||||
*
|
*
|
||||||
* @return string Title of the page
|
* @return string Title of the page
|
||||||
*/
|
*/
|
||||||
function title()
|
public function title()
|
||||||
{
|
{
|
||||||
// TRANS: Title for page with a list of profiles that were flagged for review.
|
// TRANS: Title for page with a list of profiles that were flagged for review.
|
||||||
return _m('Flagged profiles');
|
return _m('Flagged profiles');
|
||||||
@ -130,7 +133,7 @@ class AdminprofileflagAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showContent()
|
public function showContent()
|
||||||
{
|
{
|
||||||
$pl = new FlaggedProfileList($this->profiles, $this);
|
$pl = new FlaggedProfileList($this->profiles, $this);
|
||||||
|
|
||||||
@ -145,7 +148,7 @@ class AdminprofileflagAction extends Action
|
|||||||
*
|
*
|
||||||
* @return Profile $profile Profile query results
|
* @return Profile $profile Profile query results
|
||||||
*/
|
*/
|
||||||
function getProfiles()
|
public function getProfiles()
|
||||||
{
|
{
|
||||||
$ufp = new User_flag_profile();
|
$ufp = new User_flag_profile();
|
||||||
|
|
||||||
@ -158,12 +161,12 @@ class AdminprofileflagAction extends Action
|
|||||||
$ufp->groupBy('profile_id');
|
$ufp->groupBy('profile_id');
|
||||||
$ufp->orderBy('flag_count DESC, profile_id DESC');
|
$ufp->orderBy('flag_count DESC, profile_id DESC');
|
||||||
|
|
||||||
$offset = ($this->page-1) * PROFILES_PER_PAGE;
|
$offset = ($this->page - 1) * PROFILES_PER_PAGE;
|
||||||
$limit = PROFILES_PER_PAGE + 1;
|
$limit = PROFILES_PER_PAGE + 1;
|
||||||
|
|
||||||
$ufp->limit($offset, $limit);
|
$ufp->limit($offset, $limit);
|
||||||
|
|
||||||
$profiles = array();
|
$profiles = [];
|
||||||
|
|
||||||
if ($ufp->find()) {
|
if ($ufp->find()) {
|
||||||
while ($ufp->fetch()) {
|
while ($ufp->fetch()) {
|
||||||
@ -187,9 +190,11 @@ class AdminprofileflagAction extends Action
|
|||||||
*
|
*
|
||||||
* @category Widget
|
* @category Widget
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class FlaggedProfileList extends ProfileList
|
class FlaggedProfileList extends ProfileList
|
||||||
{
|
{
|
||||||
@ -200,7 +205,7 @@ class FlaggedProfileList extends ProfileList
|
|||||||
*
|
*
|
||||||
* @return ProfileListItem newly-created item
|
* @return ProfileListItem newly-created item
|
||||||
*/
|
*/
|
||||||
function newListItem(Profile $profile)
|
public function newListItem(Profile $profile)
|
||||||
{
|
{
|
||||||
return new FlaggedProfileListItem($profile, $this->action);
|
return new FlaggedProfileListItem($profile, $this->action);
|
||||||
}
|
}
|
||||||
@ -211,23 +216,25 @@ class FlaggedProfileList extends ProfileList
|
|||||||
*
|
*
|
||||||
* @category Widget
|
* @category Widget
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class FlaggedProfileListItem extends ProfileListItem
|
class FlaggedProfileListItem extends ProfileListItem
|
||||||
{
|
{
|
||||||
const MAX_FLAGGERS = 5;
|
const MAX_FLAGGERS = 5;
|
||||||
|
|
||||||
var $user = null;
|
public $user;
|
||||||
var $r2args = null;
|
public $r2args;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overload parent's action list with our own moderation-oriented buttons
|
* Overload parent's action list with our own moderation-oriented buttons
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showActions()
|
public function showActions()
|
||||||
{
|
{
|
||||||
$this->user = common_current_user();
|
$this->user = common_current_user();
|
||||||
|
|
||||||
@ -236,7 +243,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
$this->r2args['action'] = $action;
|
$this->r2args['action'] = $action;
|
||||||
|
|
||||||
$this->startActions();
|
$this->startActions();
|
||||||
if (Event::handle('StartProfileListItemActionElements', array($this))) {
|
if (Event::handle('StartProfileListItemActionElements', [$this])) {
|
||||||
$this->out->elementStart('li', 'entity_moderation');
|
$this->out->elementStart('li', 'entity_moderation');
|
||||||
// TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...).
|
// TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...).
|
||||||
$this->out->element('p', null, _m('Moderate'));
|
$this->out->element('p', null, _m('Moderate'));
|
||||||
@ -247,7 +254,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
$this->showClearButton();
|
$this->showClearButton();
|
||||||
$this->out->elementEnd('ul');
|
$this->out->elementEnd('ul');
|
||||||
$this->out->elementEnd('li');
|
$this->out->elementEnd('li');
|
||||||
Event::handle('EndProfileListItemActionElements', array($this));
|
Event::handle('EndProfileListItemActionElements', [$this]);
|
||||||
}
|
}
|
||||||
$this->endActions();
|
$this->endActions();
|
||||||
}
|
}
|
||||||
@ -257,7 +264,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showSandboxButton()
|
public function showSandboxButton()
|
||||||
{
|
{
|
||||||
if ($this->user->hasRight(Right::SANDBOXUSER)) {
|
if ($this->user->hasRight(Right::SANDBOXUSER)) {
|
||||||
$this->out->elementStart('li', 'entity_sandbox');
|
$this->out->elementStart('li', 'entity_sandbox');
|
||||||
@ -277,7 +284,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showSilenceButton()
|
public function showSilenceButton()
|
||||||
{
|
{
|
||||||
if ($this->user->hasRight(Right::SILENCEUSER)) {
|
if ($this->user->hasRight(Right::SILENCEUSER)) {
|
||||||
$this->out->elementStart('li', 'entity_silence');
|
$this->out->elementStart('li', 'entity_silence');
|
||||||
@ -297,9 +304,8 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showDeleteButton()
|
public function showDeleteButton()
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($this->user->hasRight(Right::DELETEUSER)) {
|
if ($this->user->hasRight(Right::DELETEUSER)) {
|
||||||
$this->out->elementStart('li', 'entity_delete');
|
$this->out->elementStart('li', 'entity_delete');
|
||||||
$df = new DeleteUserForm($this->out, $this->profile, $this->r2args);
|
$df = new DeleteUserForm($this->out, $this->profile, $this->r2args);
|
||||||
@ -313,7 +319,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showClearButton()
|
public function showClearButton()
|
||||||
{
|
{
|
||||||
if ($this->user->hasRight(UserFlagPlugin::CLEARFLAGS)) {
|
if ($this->user->hasRight(UserFlagPlugin::CLEARFLAGS)) {
|
||||||
$this->out->elementStart('li', 'entity_clear');
|
$this->out->elementStart('li', 'entity_clear');
|
||||||
@ -328,7 +334,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function endProfile()
|
public function endProfile()
|
||||||
{
|
{
|
||||||
$this->showFlaggersList();
|
$this->showFlaggersList();
|
||||||
parent::endProfile();
|
parent::endProfile();
|
||||||
@ -339,9 +345,9 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showFlaggersList()
|
public function showFlaggersList()
|
||||||
{
|
{
|
||||||
$flaggers = array();
|
$flaggers = [];
|
||||||
|
|
||||||
$ufp = new User_flag_profile();
|
$ufp = new User_flag_profile();
|
||||||
|
|
||||||
@ -354,7 +360,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
while ($ufp->fetch()) {
|
while ($ufp->fetch()) {
|
||||||
$user = User::getKV('id', $ufp->user_id);
|
$user = User::getKV('id', $ufp->user_id);
|
||||||
if (!empty($user)) { // XXX: this would also be unusual
|
if (!empty($user)) { // XXX: this would also be unusual
|
||||||
$flaggers[] = clone($user);
|
$flaggers[] = clone $user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -367,15 +373,14 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
$others = $cnt - self::MAX_FLAGGERS;
|
$others = $cnt - self::MAX_FLAGGERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
$lnks = array();
|
$lnks = [];
|
||||||
|
|
||||||
foreach ($flaggers as $flagger) {
|
foreach ($flaggers as $flagger) {
|
||||||
|
|
||||||
$url = common_local_url('showstream',
|
$url = common_local_url('showstream',
|
||||||
array('nickname' => $flagger->nickname));
|
['nickname' => $flagger->nickname]);
|
||||||
|
|
||||||
$lnks[] = XMLStringer::estring('a', array('href' => $url,
|
$lnks[] = XMLStringer::estring('a', ['href' => $url,
|
||||||
'class' => 'flagger'),
|
'class' => 'flagger', ],
|
||||||
$flagger->nickname);
|
$flagger->nickname);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -392,7 +397,7 @@ class FlaggedProfileListItem extends ProfileListItem
|
|||||||
$text .= sprintf(_m('Flagged by %s'), $flagging_users);
|
$text .= sprintf(_m('Flagged by %s'), $flagging_users);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->out->elementStart('p', array('class' => 'flaggers'));
|
$this->out->elementStart('p', ['class' => 'flaggers']);
|
||||||
$this->out->raw($text);
|
$this->out->raw($text);
|
||||||
$this->out->elementEnd('p');
|
$this->out->elementEnd('p');
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,11 @@
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package GNUsocial
|
* @package GNUsocial
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @copyright 2009 StatusNet, Inc.
|
* @copyright 2009 StatusNet, Inc.
|
||||||
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
defined('GNUSOCIAL') || die();
|
defined('GNUSOCIAL') || die();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,6 +31,7 @@ defined('GNUSOCIAL') || die();
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package GNUsocial
|
* @package GNUsocial
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
||||||
*/
|
*/
|
||||||
@ -41,7 +42,7 @@ class ClearflagAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @param array $args $_REQUEST args
|
* @param array $args $_REQUEST args
|
||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return bool success flag
|
||||||
*/
|
*/
|
||||||
public function prepare(array $args = [])
|
public function prepare(array $args = [])
|
||||||
{
|
{
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*
|
*
|
||||||
* StatusNet - the distributed open-source microblogging tool
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
* Copyright (C) 2009, StatusNet, Inc.
|
* Copyright (C) 2009, StatusNet, Inc.
|
||||||
@ -26,7 +28,6 @@
|
|||||||
* You should have received a copy of the GNU Affero General Public License
|
* 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/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('STATUSNET')) {
|
if (!defined('STATUSNET')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -36,9 +37,11 @@ if (!defined('STATUSNET')) {
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class FlagprofileAction extends ProfileFormAction
|
class FlagprofileAction extends ProfileFormAction
|
||||||
{
|
{
|
||||||
@ -47,9 +50,9 @@ class FlagprofileAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @param array $args $_REQUEST args
|
* @param array $args $_REQUEST args
|
||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return bool success flag
|
||||||
*/
|
*/
|
||||||
function prepare(array $args = array())
|
public function prepare(array $args = [])
|
||||||
{
|
{
|
||||||
if (!parent::prepare($args)) {
|
if (!parent::prepare($args)) {
|
||||||
return false;
|
return false;
|
||||||
@ -73,7 +76,7 @@ class FlagprofileAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
$this->handlePost();
|
$this->handlePost();
|
||||||
@ -88,7 +91,7 @@ class FlagprofileAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function handlePost()
|
public function handlePost()
|
||||||
{
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
|
|
||||||
@ -115,7 +118,7 @@ class FlagprofileAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function ajaxResults()
|
public function ajaxResults()
|
||||||
{
|
{
|
||||||
$this->startHTML('text/xml;charset=utf-8');
|
$this->startHTML('text/xml;charset=utf-8');
|
||||||
$this->elementStart('head');
|
$this->elementStart('head');
|
||||||
|
@ -19,11 +19,11 @@
|
|||||||
*
|
*
|
||||||
* @category Data
|
* @category Data
|
||||||
* @package GNUsocial
|
* @package GNUsocial
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @copyright 2009 StatusNet, Inc.
|
* @copyright 2009 StatusNet, Inc.
|
||||||
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
defined('GNUSOCIAL') || die();
|
defined('GNUSOCIAL') || die();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -33,14 +33,15 @@ defined('GNUSOCIAL') || die();
|
|||||||
*
|
*
|
||||||
* @category Action
|
* @category Action
|
||||||
* @package GNUsocial
|
* @package GNUsocial
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @copyright 2009 StatusNet, Inc.
|
* @copyright 2009 StatusNet, Inc.
|
||||||
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
|
||||||
*/
|
*/
|
||||||
class User_flag_profile extends Managed_DataObject
|
class User_flag_profile extends Managed_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
//##START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
// the code below is auto generated do not remove the above tag
|
||||||
|
|
||||||
public $__table = 'user_flag_profile'; // table name
|
public $__table = 'user_flag_profile'; // table name
|
||||||
public $profile_id; // int(11) primary_key not_null
|
public $profile_id; // int(11) primary_key not_null
|
||||||
@ -49,39 +50,39 @@ class User_flag_profile extends Managed_DataObject
|
|||||||
public $created; // datetime()
|
public $created; // datetime()
|
||||||
public $modified; // timestamp() not_null
|
public $modified; // timestamp() not_null
|
||||||
|
|
||||||
/* the code above is auto generated do not remove the tag below */
|
// the code above is auto generated do not remove the tag below
|
||||||
###END_AUTOCODE
|
//##END_AUTOCODE
|
||||||
|
|
||||||
public static function schemaDef()
|
public static function schemaDef()
|
||||||
{
|
{
|
||||||
return array(
|
return [
|
||||||
'fields' => array(
|
'fields' => [
|
||||||
'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile id flagged'),
|
'profile_id' => ['type' => 'int', 'not null' => true, 'description' => 'profile id flagged'],
|
||||||
'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user id of the actor'),
|
'user_id' => ['type' => 'int', 'not null' => true, 'description' => 'user id of the actor'],
|
||||||
'cleared' => array('type' => 'datetime', 'description' => 'when flag was removed'),
|
'cleared' => ['type' => 'datetime', 'description' => 'when flag was removed'],
|
||||||
'created' => array('type' => 'datetime', 'description' => 'date this record was created'),
|
'created' => ['type' => 'datetime', 'description' => 'date this record was created'],
|
||||||
'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
|
'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'],
|
||||||
),
|
],
|
||||||
'primary key' => array('profile_id', 'user_id'),
|
'primary key' => ['profile_id', 'user_id'],
|
||||||
'indexes' => array(
|
'indexes' => [
|
||||||
'user_flag_profile_cleared_idx' => array('cleared'),
|
'user_flag_profile_cleared_idx' => ['cleared'],
|
||||||
'user_flag_profile_created_idx' => array('created'),
|
'user_flag_profile_created_idx' => ['created'],
|
||||||
),
|
],
|
||||||
);
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a flag exists for given profile and user
|
* Check if a flag exists for given profile and user
|
||||||
*
|
*
|
||||||
* @param integer $profile_id Profile to check for
|
* @param int $profile_id Profile to check for
|
||||||
* @param integer $user_id User to check for
|
* @param int $user_id User to check for
|
||||||
*
|
*
|
||||||
* @return boolean true if exists, else false
|
* @return bool true if exists, else false
|
||||||
*/
|
*/
|
||||||
public static function exists($profile_id, $user_id)
|
public static function exists($profile_id, $user_id)
|
||||||
{
|
{
|
||||||
$ufp = User_flag_profile::pkeyGet(array('profile_id' => $profile_id,
|
$ufp = self::pkeyGet(['profile_id' => $profile_id,
|
||||||
'user_id' => $user_id));
|
'user_id' => $user_id, ]);
|
||||||
|
|
||||||
return !empty($ufp);
|
return !empty($ufp);
|
||||||
}
|
}
|
||||||
@ -89,14 +90,14 @@ class User_flag_profile extends Managed_DataObject
|
|||||||
/**
|
/**
|
||||||
* Create a new flag
|
* Create a new flag
|
||||||
*
|
*
|
||||||
* @param integer $user_id ID of user who's flagging
|
* @param int $user_id ID of user who's flagging
|
||||||
* @param integer $profile_id ID of profile being flagged
|
* @param int $profile_id ID of profile being flagged
|
||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return bool success flag
|
||||||
*/
|
*/
|
||||||
public static function create($user_id, $profile_id)
|
public static function create($user_id, $profile_id)
|
||||||
{
|
{
|
||||||
$ufp = new User_flag_profile();
|
$ufp = new self();
|
||||||
|
|
||||||
$ufp->profile_id = $profile_id;
|
$ufp->profile_id = $profile_id;
|
||||||
$ufp->user_id = $user_id;
|
$ufp->user_id = $user_id;
|
||||||
|
@ -21,12 +21,13 @@
|
|||||||
*
|
*
|
||||||
* @category Form
|
* @category Form
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @copyright 2009 StatusNet, Inc.
|
* @copyright 2009 StatusNet, Inc.
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('STATUSNET')) {
|
if (!defined('STATUSNET')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -38,9 +39,11 @@ require_once INSTALLDIR . '/lib/util/form.php';
|
|||||||
*
|
*
|
||||||
* @category Form
|
* @category Form
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @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
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class ClearFlagForm extends ProfileActionForm
|
class ClearFlagForm extends ProfileActionForm
|
||||||
{
|
{
|
||||||
@ -50,7 +53,7 @@ class ClearFlagForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string class of the form
|
* @return string class of the form
|
||||||
*/
|
*/
|
||||||
function formClass()
|
public function formClass()
|
||||||
{
|
{
|
||||||
return 'form_user_clearflag';
|
return 'form_user_clearflag';
|
||||||
}
|
}
|
||||||
@ -60,7 +63,7 @@ class ClearFlagForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string Name of the action, lowercased.
|
* @return string Name of the action, lowercased.
|
||||||
*/
|
*/
|
||||||
function target()
|
public function target()
|
||||||
{
|
{
|
||||||
return 'clearflag';
|
return 'clearflag';
|
||||||
}
|
}
|
||||||
@ -70,7 +73,7 @@ class ClearFlagForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string Title of the form, internationalized
|
* @return string Title of the form, internationalized
|
||||||
*/
|
*/
|
||||||
function title()
|
public function title()
|
||||||
{
|
{
|
||||||
// TRANS: Form title for action on a profile.
|
// TRANS: Form title for action on a profile.
|
||||||
return _m('Clear');
|
return _m('Clear');
|
||||||
@ -81,8 +84,7 @@ class ClearFlagForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string description of the form, internationalized
|
* @return string description of the form, internationalized
|
||||||
*/
|
*/
|
||||||
|
public function description()
|
||||||
function description()
|
|
||||||
{
|
{
|
||||||
// TRANS: Form description for clearing flags from a profile.
|
// TRANS: Form description for clearing flags from a profile.
|
||||||
return _m('Clear all flags');
|
return _m('Clear all flags');
|
||||||
|
@ -21,12 +21,13 @@
|
|||||||
*
|
*
|
||||||
* @category Form
|
* @category Form
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @author Evan Prodromou <evan@status.net>
|
||||||
* @copyright 2009 StatusNet, Inc.
|
* @copyright 2009 StatusNet, Inc.
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('STATUSNET')) {
|
if (!defined('STATUSNET')) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -40,9 +41,11 @@ require_once INSTALLDIR . '/lib/util/form.php';
|
|||||||
*
|
*
|
||||||
* @category Form
|
* @category Form
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
|
*
|
||||||
* @author Evan Prodromou <evan@status.net>
|
* @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
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
*
|
||||||
|
* @see http://status.net/
|
||||||
*/
|
*/
|
||||||
class FlagProfileForm extends ProfileActionForm
|
class FlagProfileForm extends ProfileActionForm
|
||||||
{
|
{
|
||||||
@ -52,7 +55,7 @@ class FlagProfileForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string class of the form
|
* @return string class of the form
|
||||||
*/
|
*/
|
||||||
function formClass()
|
public function formClass()
|
||||||
{
|
{
|
||||||
return 'form_entity_flag ajax';
|
return 'form_entity_flag ajax';
|
||||||
}
|
}
|
||||||
@ -62,7 +65,7 @@ class FlagProfileForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string Name of the action, lowercased.
|
* @return string Name of the action, lowercased.
|
||||||
*/
|
*/
|
||||||
function target()
|
public function target()
|
||||||
{
|
{
|
||||||
return 'flagprofile';
|
return 'flagprofile';
|
||||||
}
|
}
|
||||||
@ -72,7 +75,7 @@ class FlagProfileForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string Title of the form, internationalized
|
* @return string Title of the form, internationalized
|
||||||
*/
|
*/
|
||||||
function title()
|
public function title()
|
||||||
{
|
{
|
||||||
// TRANS: Form title for flagging a profile for review.
|
// TRANS: Form title for flagging a profile for review.
|
||||||
return _m('Flag');
|
return _m('Flag');
|
||||||
@ -83,7 +86,7 @@ class FlagProfileForm extends ProfileActionForm
|
|||||||
*
|
*
|
||||||
* @return string description of the form, internationalized
|
* @return string description of the form, internationalized
|
||||||
*/
|
*/
|
||||||
function description()
|
public function description()
|
||||||
{
|
{
|
||||||
// TRANS: Form description.
|
// TRANS: Form description.
|
||||||
return _m('Flag profile for review.');
|
return _m('Flag profile for review.');
|
||||||
|
Loading…
Reference in New Issue
Block a user