permissions; sort($permissions); sort($current); $log = Activity::event('server:subuser.update') ->subject($subuser->user) ->property([ 'email' => $subuser->user->email, 'old' => $current, 'new' => $permissions, 'revoked' => true, ]); // Only update the database and hit up the daemon instance to invalidate JTI's if the permissions // have actually changed for the user. if ($permissions !== $current) { $log->transaction(function ($instance) use ($subuser, $permissions, $server) { $subuser->update(['permissions' => $permissions]); try { $this->serverRepository->setServer($server)->revokeUserJTI($subuser->user_id); } catch (DaemonConnectionException $exception) { // Don't block this request if we can't connect to the daemon instance. Chances are it is // offline and the token will be invalid once daemon boots back. logger()->warning($exception, ['user_id' => $subuser->user_id, 'server_id' => $server->id]); $instance->property('revoked', false); } }); } $log->reset(); } }