Skip to content

Commit

Permalink
Add translation
Browse files Browse the repository at this point in the history
Hide user on discussion
  • Loading branch information
Lucas committed Jan 12, 2020
1 parent 93fee3d commit 5410d77
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 5 deletions.
3 changes: 3 additions & 0 deletions locale/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ dotronglong-hide-me:
privacy_public_info: Your identity will be visible to everyone.
privacy_anonymous_label: Anonymous Mode
privacy_anonymous_info: Show as anonymous. You can still edit post.
anonymous:
username: "[hidden]"
display_name: "[hidden]"
18 changes: 17 additions & 1 deletion src/Listener/AddForumUserRelationship.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,25 @@
use Flarum\Event\GetApiRelationship;
use Illuminate\Contracts\Events\Dispatcher;
use Long\HideMe\User\Anonymous;
use Symfony\Component\Translation\TranslatorInterface;

class AddForumUserRelationship
{
/**
* @var TranslatorInterface
*/
private $translator;

/**
* AddForumUserRelationship constructor.
* @param $translator
*/
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}


public function subscribe(Dispatcher $events)
{
$events->listen(GetApiRelationship::class, [$this, 'getApiRelationship']);
Expand All @@ -31,7 +47,7 @@ public function getApiRelationship(GetApiRelationship $event)
public function loadUsersRelationship(WillSerializeData $event)
{
if ($event->isController(ShowForumController::class)) {
$event->data['users'] = [Anonymous::user()];
$event->data['users'] = [Anonymous::user($this->translator)];
}
}

Expand Down
19 changes: 18 additions & 1 deletion src/Listener/SerializingListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,23 @@
use Flarum\Post\Post;
use Long\HideMe\HideMe;
use Long\HideMe\User\Anonymous;
use Symfony\Component\Translation\TranslatorInterface;

class SerializingListener
{
/**
* @var TranslatorInterface
*/
private $translator;

/**
* SerializingListener constructor.
*/
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}

public function handle(Serializing $event)
{
if ($event->serializer instanceof DiscussionSerializer
Expand All @@ -29,12 +43,15 @@ public function handle(Serializing $event)

private function hide(Serializing $event)
{
$anonymous = Anonymous::user();
$anonymous = Anonymous::user($this->translator);
if ($event->model instanceof Discussion) {
$lastPost = $event->model->lastPost()->first();
if ($lastPost[HideMe::COL_HIDE_ME] === HideMe::ANONYMOUS) {
$event->model->setRelation('lastPostedUser', $anonymous);
}
if ($event->model[HideMe::COL_HIDE_ME] === HideMe::ANONYMOUS) {
$event->model->setRelation('user', $anonymous);
}
} else if (($event->model instanceof Post || $event->model instanceof CommentPost)
&& $event->model[HideMe::COL_HIDE_ME] === HideMe::ANONYMOUS) {
$event->model->setRelation('user', $anonymous);
Expand Down
7 changes: 4 additions & 3 deletions src/User/Anonymous.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Carbon\Carbon;
use Flarum\User\User;
use Symfony\Component\Translation\TranslatorInterface;

class Anonymous extends User
{
Expand All @@ -17,13 +18,13 @@ public function isGuest()
return false;
}

public static function user()
public static function user(TranslatorInterface $translator)
{
$now = Carbon::now('utc')->toDateTimeString();
$user = new static();
$user->id = -1;
$user->username = '[hidden]';
$user->display_name = '[hidden]';
$user->username = $translator->trans("dotronglong-hide-me.anonymous.username");
$user->display_name = $translator->trans("dotronglong-hide-me.anonymous.display_name");
$user->joined_at = $now;
$user->last_seen_at = $now;
$user->discussion_count = 0;
Expand Down

0 comments on commit 5410d77

Please sign in to comment.