You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
653 B

3 years ago
<?php
namespace Justoverclock\UsersMapLocation\Listeners;
use Flarum\User\Event\Saving;
use Illuminate\Support\Arr;
class SaveLocationToDatabase
{
public function handle(Saving $event)
{
$user = $event->user;
$data = $event->data;
$actor = $event->actor;
$isSelf = $actor->id === $user->id;
$canEdit = $actor->can('edit', $user);
$attributes = Arr::get($data, 'attributes', []);
if (isset($attributes['location'])) {
if (!$isSelf) {
$actor->assertPermission($canEdit);
}
$user->location = $attributes['location'];
}
}
}