Compare commits

...

3 Commits

3 changed files with 21 additions and 74 deletions

View File

@ -39,8 +39,8 @@ REDIS_PASSWORD=null
REDIS_PORT=6379 REDIS_PORT=6379
MAIL_MAILER=smtp MAIL_MAILER=smtp
MAIL_HOST=mailhog MAIL_HOST=mailpit
MAIL_PORT=1125 MAIL_PORT=1025
MAIL_USERNAME=null MAIL_USERNAME=null
MAIL_PASSWORD=null MAIL_PASSWORD=null
MAIL_ENCRYPTION=null MAIL_ENCRYPTION=null
@ -74,8 +74,14 @@ AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID= PUSHER_APP_ID=
PUSHER_APP_KEY= PUSHER_APP_KEY=
PUSHER_APP_SECRET= PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1 PUSHER_APP_CLUSTER=mt1
VITE_SSL_KEY_FILE_PATH="/code/docker/configs/nginx/ssls/${APP_DOMAIN}/${APP_DOMAIN}.key"
VITE_SSL_CERT_FILE_PATH="/code/docker/configs/nginx/ssls/${APP_DOMAIN}/${APP_DOMAIN}.crt"
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
MIX_PUSHER_HOST="${PUSHER_HOST}" MIX_PUSHER_HOST="${PUSHER_HOST}"

View File

@ -1,17 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PSR2" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/src/Standards/PSR2/ruleset.xml"> <ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PSR2" xsi:noNamespaceSchemaLocation="vendor/slevomat/coding-standard">
<description>PHP Codesniffer ruleset for this project</description> <description>PHP Codesniffer ruleset for this project</description>
<file>./app/Models</file>
<file>./config</file>
<file>./database</file>
<file>./helpers</file>
<file>./lang</file>
<file>./resources/views</file>
<file>./routes</file>
<exclude-pattern>*/vendor/*</exclude-pattern>
<arg name="basepath" value="."/> <arg name="basepath" value="."/>
<arg name="parallel" value="4"/> <arg name="parallel" value="4"/>
<arg name="report" value="full"/> <arg name="report" value="full"/>
@ -24,6 +14,16 @@
<autoload>./vendor/autoload.php</autoload> <autoload>./vendor/autoload.php</autoload>
<file>./app/Models</file>
<file>./config</file>
<file>./database</file>
<file>./helpers</file>
<file>./lang</file>
<file>./resources/views</file>
<file>./routes</file>
<exclude-pattern>*/vendor/*</exclude-pattern>
<!-- Don't hide tokenizer exceptions --> <!-- Don't hide tokenizer exceptions -->
<rule ref="Internal.Tokenizer.Exception"> <rule ref="Internal.Tokenizer.Exception">
<type>error</type> <type>error</type>

View File

@ -2,21 +2,14 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Inertia\Response; use Inertia\Response;
use Jenssegers\Agent\Agent;
use Laravel\Fortify\Features; use Laravel\Fortify\Features;
use Laravel\Jetstream\Http\Controllers\Inertia\Concerns\ConfirmsTwoFactorAuthentication; use Laravel\Jetstream\Http\Controllers\Inertia\UserProfileController as JetstreamUserProfileController;
use Laravel\Jetstream\Jetstream; use Laravel\Jetstream\Jetstream;
class UserProfileController extends Controller class UserProfileController extends JetstreamUserProfileController
{ {
use ConfirmsTwoFactorAuthentication;
/** /**
* Show the general profile settings screen. * Show the general profile settings screen.
* *
@ -36,56 +29,4 @@ class UserProfileController extends Controller
'timezones' => timezone_identifiers_list(), 'timezones' => timezone_identifiers_list(),
]); ]);
} }
/**
* Get the current sessions.
*
* @since 1.0.0
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Support\Collection
*/
public function sessions(Request $request): Collection
{
if (config('session.driver') !== 'database') {
return collect();
}
return collect(
DB::connection(config('session.connection'))->table(config('session.table', 'sessions'))
->where('user_id', $request->user()->getAuthIdentifier())
->orderBy('last_activity', 'desc')
->get()
)->map(function ($session) use ($request) {
$agent = $this->createAgent($session);
return (object) [
'agent' => [
'is_desktop' => $agent->isDesktop(),
'platform' => $agent->platform(),
'browser' => $agent->browser(),
],
'ip_address' => $session->ip_address,
'is_current_device' => $session->id === $request->session()->getId(),
'last_active' => Carbon::createFromTimestamp($session->last_activity)->diffForHumans(),
];
});
}
/**
* Create a new agent instance from the given session.
*
* @since 1.0.0
*
* @param mixed $session
*
* @return \Jenssegers\Agent\Agent
*/
protected function createAgent($session): Agent
{
return tap(new Agent, function ($agent) use ($session) {
$agent->setUserAgent($session->user_agent);
});
}
} }