Compare commits
	
		
			3 Commits
		
	
	
		
			3b39ae0470
			...
			ac99d29109
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						ac99d29109
	
				 | 
					
					
						|||
| 
						
						
							
						
						d4f0044656
	
				 | 
					
					
						|||
| 
						
						
							
						
						9d455bdcf7
	
				 | 
					
					
						
@@ -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}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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);
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user