* @return Status
* @since 1.25
*/
- public static function addTagsAccompanyingChangeWithChecks( array $tags,
- $rc_id, $rev_id, $log_id, $params, User $user ) {
+ public static function addTagsAccompanyingChangeWithChecks(
+ array $tags, $rc_id, $rev_id, $log_id, $params, User $user
+ ) {
// are we allowed to do this?
$result = self::canAddTagsAccompanyingChange( $tags, $user );
}
// do it!
- self::addTags( $tagsToAdd, $rc_id, $rev_id, $log_id, $params );
+ self::addTags( $tags, $rc_id, $rev_id, $log_id, $params );
return Status::newGood( true );
}
if ( $rev_id ) {
$rev = Revision::newFromId( $rev_id );
if ( $rev ) {
- $title = $rev->getTitle();
$logEntry->setTarget( $rev->getTitle() );
}
} elseif ( $log_id ) {
* @param User $user Who to attribute the action to
* @param int $tagCount For deletion only, how many usages the tag had before
* it was deleted.
+ * @return int ID of the inserted log entry
* @since 1.25
*/
protected static function logTagManagementAction( $action, $tag, $reason,
$wgMemc->set( $key, $out, 300 );
return $out;
}
+
+ /**
+ * Indicate whether change tag editing UI is relevant
+ *
+ * Returns true if the user has the necessary right and there are any
+ * editable tags defined.
+ *
+ * This intentionally doesn't check "any addable || any deletable", because
+ * it seems like it would be more confusing than useful if the checkboxes
+ * suddenly showed up because some abuse filter stopped defining a tag and
+ * then suddenly disappeared when someone deleted all uses of that tag.
+ *
+ * @param User $user
+ * @return bool
+ */
+ public static function showTagEditingUI( User $user ) {
+ return $user->isAllowed( 'changetags' ) && (bool)self::listExplicitlyDefinedTags();
+ }
}