Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c6be2f1e3 | |||
| cee16de419 | |||
| e4cccba942 | |||
| e023f68a84 | |||
| 4edb7fac10 | |||
| 19f93f95bb | |||
| 885161cc2b | |||
| a8fd03f256 | |||
| 00ff08e3a6 | |||
| 7e8b35bf20 | |||
| 681d8b73d6 | |||
| f294ded6e8 | |||
| eca564eac7 | |||
| e8df889f7e | |||
| ad02f65b54 | |||
| c2c9464133 | |||
| c0176f9924 | |||
| ffa8d30be4 |
@@ -33,3 +33,9 @@ MAIL_FROM_NAME=null
|
|||||||
PUSHER_APP_ID=
|
PUSHER_APP_ID=
|
||||||
PUSHER_APP_KEY=
|
PUSHER_APP_KEY=
|
||||||
PUSHER_APP_SECRET=
|
PUSHER_APP_SECRET=
|
||||||
|
|
||||||
|
OIDC_BASE_URL=
|
||||||
|
OIDC_CLIENT_ID=
|
||||||
|
OIDC_CLIENT_SECRET=
|
||||||
|
OIDC_REDIRECT_URI="${APP_URL}/auth/social/oidc/callback"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
name: Deploy to Remote Server
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Deploy and optimize
|
||||||
|
uses: appleboy/ssh-action@master
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.SSH_HOST }}
|
||||||
|
username: ${{ secrets.SSH_USER }}
|
||||||
|
key: ${{ secrets.SSH_KEY }}
|
||||||
|
port: ${{ secrets.SSH_PORT || 22 }}
|
||||||
|
script: |
|
||||||
|
cd ${{ secrets.DEPLOY_PATH }}
|
||||||
|
git pull origin master
|
||||||
|
composer install --no-interaction --prefer-dist --optimize-autoloader
|
||||||
|
npm install
|
||||||
|
npm run prod
|
||||||
|
php artisan migrate --force
|
||||||
|
php artisan optimize:clear
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use Filament\Resources\Resource;
|
||||||
|
use Filament\Tables\Table;
|
||||||
|
use Filament\Tables;
|
||||||
|
use Filament\Tables\Columns\TextColumn;
|
||||||
|
use Filament\Forms\Components\TextInput;
|
||||||
|
use Filament\Schemas\Schema;
|
||||||
|
use Filament\Actions\EditAction;
|
||||||
|
use Filament\Actions\BulkActionGroup;
|
||||||
|
use Filament\Actions\DeleteBulkAction;
|
||||||
|
use Filament\Support\Icons\Heroicon;
|
||||||
|
use BackedEnum;
|
||||||
|
|
||||||
|
class UserResource extends Resource
|
||||||
|
{
|
||||||
|
protected static ?string $model = User::class;
|
||||||
|
|
||||||
|
protected static ?string $recordTitleAttribute = 'name';
|
||||||
|
|
||||||
|
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-users';
|
||||||
|
|
||||||
|
public static function form(Schema $schema): Schema
|
||||||
|
{
|
||||||
|
return $schema
|
||||||
|
->components([
|
||||||
|
TextInput::make('name')
|
||||||
|
->required()
|
||||||
|
->maxLength(255),
|
||||||
|
TextInput::make('email')
|
||||||
|
->email()
|
||||||
|
->required()
|
||||||
|
->maxLength(255),
|
||||||
|
TextInput::make('provider_name')
|
||||||
|
->label('OIDC Provider')
|
||||||
|
->disabled(),
|
||||||
|
TextInput::make('provider_id')
|
||||||
|
->label('OIDC ID')
|
||||||
|
->disabled(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function table(Table $table): Table
|
||||||
|
{
|
||||||
|
return $table
|
||||||
|
->columns([
|
||||||
|
TextColumn::make('name')->sortable()->searchable(),
|
||||||
|
TextColumn::make('email')->sortable()->searchable(),
|
||||||
|
TextColumn::make('provider_name')->label('OIDC Provider'),
|
||||||
|
TextColumn::make('provider_id')->label('OIDC ID'),
|
||||||
|
TextColumn::make('created_at')->dateTime()->sortable(),
|
||||||
|
])
|
||||||
|
->filters([
|
||||||
|
//
|
||||||
|
])
|
||||||
|
->recordActions([
|
||||||
|
EditAction::make(),
|
||||||
|
])
|
||||||
|
->toolbarActions([
|
||||||
|
BulkActionGroup::make([
|
||||||
|
DeleteBulkAction::make(),
|
||||||
|
]),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'index' => UserResource\Pages\ListUsers::route('/'),
|
||||||
|
'create' => UserResource\Pages\CreateUsers::route('/create'),
|
||||||
|
'edit' => UserResource\Pages\EditUsers::route('/{record}/edit'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\UserResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\UserResource;
|
||||||
|
use Filament\Resources\Pages\CreateRecord;
|
||||||
|
|
||||||
|
class CreateUsers extends CreateRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = UserResource::class;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\UserResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\UserResource;
|
||||||
|
use Filament\Resources\Pages\EditRecord;
|
||||||
|
|
||||||
|
class EditUsers extends EditRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = UserResource::class;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\UserResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\UserResource;
|
||||||
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
|
||||||
|
class ListUsers extends ListRecords
|
||||||
|
{
|
||||||
|
protected static string $resource = UserResource::class;
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\User;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Laravel\Socialite\Facades\Socialite;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
|
class SocialiteController extends Controller
|
||||||
|
{
|
||||||
|
public function redirectToProvider($provider)
|
||||||
|
{
|
||||||
|
return Socialite::driver($provider)->redirect();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handleProviderCallback($provider)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$socialUser = Socialite::driver($provider)->user();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return redirect('/login')->with('error', 'Authentication failed.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Auth::check()) {
|
||||||
|
$user = Auth::user();
|
||||||
|
$user->update([
|
||||||
|
'provider_name' => $provider,
|
||||||
|
'provider_id' => $socialUser->getId(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->intended('/admin')->with('status', 'Account linked successfully!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find user by provider_id
|
||||||
|
$user = User::where('provider_name', $provider)
|
||||||
|
->where('provider_id', $socialUser->getId())
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
// Find user by email to link
|
||||||
|
$user = User::where('email', $socialUser->getEmail())->first();
|
||||||
|
|
||||||
|
if ($user) {
|
||||||
|
// Link the account
|
||||||
|
$user->update([
|
||||||
|
'provider_name' => $provider,
|
||||||
|
'provider_id' => $socialUser->getId(),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
// Optionally create a new user
|
||||||
|
$user = User::create([
|
||||||
|
'name' => $socialUser->getName() ?? $socialUser->getNickname() ?? $socialUser->getEmail(),
|
||||||
|
'email' => $socialUser->getEmail(),
|
||||||
|
'provider_name' => $provider,
|
||||||
|
'provider_id' => $socialUser->getId(),
|
||||||
|
'password' => bcrypt(Str::random(24)),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Auth::login($user);
|
||||||
|
|
||||||
|
return redirect()->intended('/admin'); // Redirect to filament admin or home
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,6 +16,9 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
'App\Events\Event' => [
|
'App\Events\Event' => [
|
||||||
'App\Listeners\EventListener',
|
'App\Listeners\EventListener',
|
||||||
],
|
],
|
||||||
|
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
|
||||||
|
\SocialiteProviders\OIDC\OIDCExtendSocialite::class.'@handle',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,8 +18,41 @@ use Illuminate\Routing\Middleware\SubstituteBindings;
|
|||||||
use Illuminate\Session\Middleware\StartSession;
|
use Illuminate\Session\Middleware\StartSession;
|
||||||
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||||
|
|
||||||
|
use Filament\Support\Facades\FilamentView;
|
||||||
|
use Illuminate\Support\Facades\Blade;
|
||||||
|
|
||||||
|
use Filament\Navigation\MenuItem;
|
||||||
|
|
||||||
|
use Filament\Facades\Filament;
|
||||||
|
|
||||||
class AdminPanelProvider extends PanelProvider
|
class AdminPanelProvider extends PanelProvider
|
||||||
{
|
{
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
FilamentView::registerRenderHook(
|
||||||
|
'panels::auth.login.form.after',
|
||||||
|
fn (): string => Blade::render('
|
||||||
|
<div class="mt-4">
|
||||||
|
<x-filament::button
|
||||||
|
:href="url(\'auth/social/oidc\')"
|
||||||
|
tag="a"
|
||||||
|
color="info"
|
||||||
|
class="w-full"
|
||||||
|
>
|
||||||
|
Login with OIDC
|
||||||
|
</x-filament::button>
|
||||||
|
</div>
|
||||||
|
'),
|
||||||
|
);
|
||||||
|
|
||||||
|
Filament::registerUserMenuItems([
|
||||||
|
MenuItem::make()
|
||||||
|
->label('Link OIDC Account')
|
||||||
|
->icon('heroicon-o-link')
|
||||||
|
->url(fn (): string => url('auth/social/oidc')),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function panel(Panel $panel): Panel
|
public function panel(Panel $panel): Panel
|
||||||
{
|
{
|
||||||
return $panel
|
return $panel
|
||||||
@@ -27,6 +60,13 @@ class AdminPanelProvider extends PanelProvider
|
|||||||
->id('admin')
|
->id('admin')
|
||||||
->path('admin')
|
->path('admin')
|
||||||
->login()
|
->login()
|
||||||
|
->profile()
|
||||||
|
->userMenuItems([
|
||||||
|
'oidc' => MenuItem::make()
|
||||||
|
->label('Link OIDC Account')
|
||||||
|
->icon('heroicon-o-link')
|
||||||
|
->url(fn (): string => url('auth/social/oidc')),
|
||||||
|
])
|
||||||
->brandName(env('APP_NAME'))
|
->brandName(env('APP_NAME'))
|
||||||
->homeUrl('/')
|
->homeUrl('/')
|
||||||
->colors([
|
->colors([
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ class User extends Authenticatable implements FilamentUser, HasName
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name', 'email', 'password',
|
'name', 'email', 'password', 'provider_name', 'provider_id',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+4
-1
@@ -9,9 +9,12 @@
|
|||||||
"barryvdh/laravel-snappy": "^1.0",
|
"barryvdh/laravel-snappy": "^1.0",
|
||||||
"carlos-meneses/laravel-mpdf": "^2.1",
|
"carlos-meneses/laravel-mpdf": "^2.1",
|
||||||
"filament/filament": "^5.0",
|
"filament/filament": "^5.0",
|
||||||
|
"kovah/laravel-socialite-oidc": "^0.7.0",
|
||||||
"laravel/framework": "^11.0",
|
"laravel/framework": "^11.0",
|
||||||
|
"laravel/socialite": "^5.26",
|
||||||
"laravel/tinker": "^2.9",
|
"laravel/tinker": "^2.9",
|
||||||
"laravel/ui": "^4.2"
|
"laravel/ui": "^4.2",
|
||||||
|
"socialiteproviders/manager": "^4.9"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"barryvdh/laravel-debugbar": "^3.8",
|
"barryvdh/laravel-debugbar": "^3.8",
|
||||||
|
|||||||
Generated
+465
-1
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "513e167cc5aa3dc9285bd5312b837eca",
|
"content-hash": "3c08b43425d232f81481839d3c2286fc",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "barryvdh/laravel-snappy",
|
"name": "barryvdh/laravel-snappy",
|
||||||
@@ -1545,6 +1545,70 @@
|
|||||||
},
|
},
|
||||||
"time": "2026-04-03T15:40:06+00:00"
|
"time": "2026-04-03T15:40:06+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "firebase/php-jwt",
|
||||||
|
"version": "v7.0.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/googleapis/php-jwt.git",
|
||||||
|
"reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/googleapis/php-jwt/zipball/47ad26bab5e7c70ae8a6f08ed25ff83631121380",
|
||||||
|
"reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"guzzlehttp/guzzle": "^7.4",
|
||||||
|
"phpfastcache/phpfastcache": "^9.2",
|
||||||
|
"phpspec/prophecy-phpunit": "^2.0",
|
||||||
|
"phpunit/phpunit": "^9.5",
|
||||||
|
"psr/cache": "^2.0||^3.0",
|
||||||
|
"psr/http-client": "^1.0",
|
||||||
|
"psr/http-factory": "^1.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-sodium": "Support EdDSA (Ed25519) signatures",
|
||||||
|
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Firebase\\JWT\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Neuman Vong",
|
||||||
|
"email": "neuman+pear@twilio.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Anant Narayanan",
|
||||||
|
"email": "anant@php.net",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
|
||||||
|
"homepage": "https://github.com/firebase/php-jwt",
|
||||||
|
"keywords": [
|
||||||
|
"jwt",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/googleapis/php-jwt/issues",
|
||||||
|
"source": "https://github.com/googleapis/php-jwt/tree/v7.0.5"
|
||||||
|
},
|
||||||
|
"time": "2026-04-01T20:38:03+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "fruitcake/php-cors",
|
"name": "fruitcake/php-cors",
|
||||||
"version": "v1.4.0",
|
"version": "v1.4.0",
|
||||||
@@ -2220,6 +2284,74 @@
|
|||||||
},
|
},
|
||||||
"time": "2026-02-13T12:50:40+00:00"
|
"time": "2026-02-13T12:50:40+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "kovah/laravel-socialite-oidc",
|
||||||
|
"version": "v0.7.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Kovah/laravel-socialite-oidc.git",
|
||||||
|
"reference": "7c4495d833f041e74726da99d6588803eedf6b9e"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Kovah/laravel-socialite-oidc/zipball/7c4495d833f041e74726da99d6588803eedf6b9e",
|
||||||
|
"reference": "7c4495d833f041e74726da99d6588803eedf6b9e",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"firebase/php-jwt": "^6.4|^7.0",
|
||||||
|
"illuminate/http": "^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0",
|
||||||
|
"illuminate/support": "^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0",
|
||||||
|
"php": "^8.1",
|
||||||
|
"socialiteproviders/manager": "^4.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"jp-gauthier/socialiteproviders-oidc": "*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"SocialiteProviders\\OIDC\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "JPG Dev",
|
||||||
|
"homepage": "https://jpgdev.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Kevin Woblick",
|
||||||
|
"email": "contact@woblick.dev",
|
||||||
|
"homepage": "https://woblick.dev",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "OpenID Connect OAuth2 Provider for Laravel Socialite",
|
||||||
|
"homepage": "https://github.com/kovah/laravel-socialite-oidc",
|
||||||
|
"keywords": [
|
||||||
|
"laravel",
|
||||||
|
"oauth",
|
||||||
|
"oidc",
|
||||||
|
"provider",
|
||||||
|
"socialite"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/Kovah/laravel-socialite-oidc/issues",
|
||||||
|
"source": "https://github.com/Kovah/laravel-socialite-oidc/tree/v0.7.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/sponsors/kovah",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-03-18T10:06:36+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v11.51.0",
|
"version": "v11.51.0",
|
||||||
@@ -2555,6 +2687,78 @@
|
|||||||
},
|
},
|
||||||
"time": "2026-04-14T13:33:34+00:00"
|
"time": "2026-04-14T13:33:34+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "laravel/socialite",
|
||||||
|
"version": "v5.26.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/laravel/socialite.git",
|
||||||
|
"reference": "db6ec2ee967b7f06412c3a0cf1daaf072f4752a4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/laravel/socialite/zipball/db6ec2ee967b7f06412c3a0cf1daaf072f4752a4",
|
||||||
|
"reference": "db6ec2ee967b7f06412c3a0cf1daaf072f4752a4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"firebase/php-jwt": "^6.4|^7.0",
|
||||||
|
"guzzlehttp/guzzle": "^6.0|^7.0",
|
||||||
|
"illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
|
||||||
|
"illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
|
||||||
|
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
|
||||||
|
"league/oauth1-client": "^1.11",
|
||||||
|
"php": "^7.2|^8.0",
|
||||||
|
"phpseclib/phpseclib": "^3.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"mockery/mockery": "^1.0",
|
||||||
|
"orchestra/testbench": "^4.18|^5.20|^6.47|^7.55|^8.36|^9.15|^10.8|^11.0",
|
||||||
|
"phpstan/phpstan": "^1.12.23",
|
||||||
|
"phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5|^12.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"aliases": {
|
||||||
|
"Socialite": "Laravel\\Socialite\\Facades\\Socialite"
|
||||||
|
},
|
||||||
|
"providers": [
|
||||||
|
"Laravel\\Socialite\\SocialiteServiceProvider"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "5.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Laravel\\Socialite\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Taylor Otwell",
|
||||||
|
"email": "taylor@laravel.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Laravel wrapper around OAuth 1 & OAuth 2 libraries.",
|
||||||
|
"homepage": "https://laravel.com",
|
||||||
|
"keywords": [
|
||||||
|
"laravel",
|
||||||
|
"oauth"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/laravel/socialite/issues",
|
||||||
|
"source": "https://github.com/laravel/socialite"
|
||||||
|
},
|
||||||
|
"time": "2026-03-29T14:50:53+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/tinker",
|
"name": "laravel/tinker",
|
||||||
"version": "v2.11.1",
|
"version": "v2.11.1",
|
||||||
@@ -3152,6 +3356,82 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-09-21T08:32:55+00:00"
|
"time": "2024-09-21T08:32:55+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "league/oauth1-client",
|
||||||
|
"version": "v1.11.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thephpleague/oauth1-client.git",
|
||||||
|
"reference": "f9c94b088837eb1aae1ad7c4f23eb65cc6993055"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/f9c94b088837eb1aae1ad7c4f23eb65cc6993055",
|
||||||
|
"reference": "f9c94b088837eb1aae1ad7c4f23eb65cc6993055",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-openssl": "*",
|
||||||
|
"guzzlehttp/guzzle": "^6.0|^7.0",
|
||||||
|
"guzzlehttp/psr7": "^1.7|^2.0",
|
||||||
|
"php": ">=7.1||>=8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ext-simplexml": "*",
|
||||||
|
"friendsofphp/php-cs-fixer": "^2.17",
|
||||||
|
"mockery/mockery": "^1.3.3",
|
||||||
|
"phpstan/phpstan": "^0.12.42",
|
||||||
|
"phpunit/phpunit": "^7.5||9.5"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-simplexml": "For decoding XML-based responses."
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0-dev",
|
||||||
|
"dev-develop": "2.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"League\\OAuth1\\Client\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ben Corlett",
|
||||||
|
"email": "bencorlett@me.com",
|
||||||
|
"homepage": "http://www.webcomm.com.au",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "OAuth 1.0 Client Library",
|
||||||
|
"keywords": [
|
||||||
|
"Authentication",
|
||||||
|
"SSO",
|
||||||
|
"authorization",
|
||||||
|
"bitbucket",
|
||||||
|
"identity",
|
||||||
|
"idp",
|
||||||
|
"oauth",
|
||||||
|
"oauth1",
|
||||||
|
"single sign on",
|
||||||
|
"trello",
|
||||||
|
"tumblr",
|
||||||
|
"twitter"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/thephpleague/oauth1-client/issues",
|
||||||
|
"source": "https://github.com/thephpleague/oauth1-client/tree/v1.11.0"
|
||||||
|
},
|
||||||
|
"time": "2024-12-10T19:59:05+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "league/uri",
|
"name": "league/uri",
|
||||||
"version": "7.8.1",
|
"version": "7.8.1",
|
||||||
@@ -4600,6 +4880,116 @@
|
|||||||
],
|
],
|
||||||
"time": "2025-12-27T19:41:33+00:00"
|
"time": "2025-12-27T19:41:33+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "phpseclib/phpseclib",
|
||||||
|
"version": "3.0.51",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||||
|
"reference": "d59c94077f9c9915abb51ddb52ce85188ece1748"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d59c94077f9c9915abb51ddb52ce85188ece1748",
|
||||||
|
"reference": "d59c94077f9c9915abb51ddb52ce85188ece1748",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"paragonie/constant_time_encoding": "^1|^2|^3",
|
||||||
|
"paragonie/random_compat": "^1.4|^2.0|^9.99.99",
|
||||||
|
"php": ">=5.6.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "*"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-dom": "Install the DOM extension to load XML formatted public keys.",
|
||||||
|
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
|
||||||
|
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
|
||||||
|
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
||||||
|
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"phpseclib/bootstrap.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"phpseclib3\\": "phpseclib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jim Wigginton",
|
||||||
|
"email": "terrafrost@php.net",
|
||||||
|
"role": "Lead Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Patrick Monnerat",
|
||||||
|
"email": "pm@datasphere.ch",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Andreas Fischer",
|
||||||
|
"email": "bantu@phpbb.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hans-Jürgen Petrich",
|
||||||
|
"email": "petrich@tronic-media.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Graham Campbell",
|
||||||
|
"email": "graham@alt-three.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
|
||||||
|
"homepage": "http://phpseclib.sourceforge.net",
|
||||||
|
"keywords": [
|
||||||
|
"BigInteger",
|
||||||
|
"aes",
|
||||||
|
"asn.1",
|
||||||
|
"asn1",
|
||||||
|
"blowfish",
|
||||||
|
"crypto",
|
||||||
|
"cryptography",
|
||||||
|
"encryption",
|
||||||
|
"rsa",
|
||||||
|
"security",
|
||||||
|
"sftp",
|
||||||
|
"signature",
|
||||||
|
"signing",
|
||||||
|
"ssh",
|
||||||
|
"twofish",
|
||||||
|
"x.509",
|
||||||
|
"x509"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/phpseclib/phpseclib/issues",
|
||||||
|
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.51"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/terrafrost",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpseclib",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-04-10T01:33:53+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "pragmarx/google2fa",
|
"name": "pragmarx/google2fa",
|
||||||
"version": "v9.0.0",
|
"version": "v9.0.0",
|
||||||
@@ -5636,6 +6026,80 @@
|
|||||||
],
|
],
|
||||||
"time": "2026-03-13T08:38:20+00:00"
|
"time": "2026-03-13T08:38:20+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "socialiteproviders/manager",
|
||||||
|
"version": "4.9.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/SocialiteProviders/Manager.git",
|
||||||
|
"reference": "35372dc62787e61e91cfec73f45fd5d5ae0f8891"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/SocialiteProviders/Manager/zipball/35372dc62787e61e91cfec73f45fd5d5ae0f8891",
|
||||||
|
"reference": "35372dc62787e61e91cfec73f45fd5d5ae0f8891",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"illuminate/support": "^11.0 || ^12.0 || ^13.0",
|
||||||
|
"laravel/socialite": "^5.5",
|
||||||
|
"php": "^8.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"mockery/mockery": "^1.2",
|
||||||
|
"phpunit/phpunit": "^9.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"providers": [
|
||||||
|
"SocialiteProviders\\Manager\\ServiceProvider"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"SocialiteProviders\\Manager\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Andy Wendt",
|
||||||
|
"email": "andy@awendt.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Anton Komarev",
|
||||||
|
"email": "a.komarev@cybercog.su"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Miguel Piedrafita",
|
||||||
|
"email": "soy@miguelpiedrafita.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "atymic",
|
||||||
|
"email": "atymicq@gmail.com",
|
||||||
|
"homepage": "https://atymic.dev"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Easily add new or override built-in providers in Laravel Socialite.",
|
||||||
|
"homepage": "https://socialiteproviders.com",
|
||||||
|
"keywords": [
|
||||||
|
"laravel",
|
||||||
|
"manager",
|
||||||
|
"oauth",
|
||||||
|
"providers",
|
||||||
|
"socialite"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/socialiteproviders/manager/issues",
|
||||||
|
"source": "https://github.com/socialiteproviders/manager"
|
||||||
|
},
|
||||||
|
"time": "2026-03-18T22:13:24+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "spatie/invade",
|
"name": "spatie/invade",
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
|
|||||||
@@ -35,4 +35,11 @@ return [
|
|||||||
'secret' => env('STRIPE_SECRET'),
|
'secret' => env('STRIPE_SECRET'),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'oidc' => [
|
||||||
|
'base_url' => env('OIDC_BASE_URL'),
|
||||||
|
'client_id' => env('OIDC_CLIENT_ID'),
|
||||||
|
'client_secret' => env('OIDC_CLIENT_SECRET'),
|
||||||
|
'redirect' => env('OIDC_REDIRECT_URI'),
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -23,14 +23,131 @@ $factory->define(App\User::class, function (Faker\Generator $faker) {
|
|||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
//Bidder
|
// Bidders
|
||||||
$factory->define(App\Models\Bidder::class, function (Faker\Generator $faker) {
|
$factory->define(App\Models\Bidders::class, function (Faker\Generator $faker) {
|
||||||
static $password;
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'name' => $faker->name,
|
'bidder_fname' => $faker->firstName,
|
||||||
'email' => $faker->unique()->safeEmail,
|
'bidder_lname' => $faker->lastName,
|
||||||
'password' => $password ?: $password = bcrypt('secret'),
|
'bidder_addr' => $faker->streetAddress,
|
||||||
'remember_token' => str_random(10),
|
'bidder_city' => $faker->city,
|
||||||
|
'bidder_state' => $faker->stateAbbr,
|
||||||
|
'bidder_zip' => $faker->postcode,
|
||||||
|
'bidder_phone' => $faker->phoneNumber,
|
||||||
|
'bidder_email' => $faker->unique()->safeEmail,
|
||||||
|
'bidder_assigned_number' => $faker->unique()->numberBetween(1, 1000),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Items
|
||||||
|
$factory->define(App\Models\Items::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'item_desc' => $faker->sentence(3),
|
||||||
|
'item_min_bid' => $faker->numberBetween(10, 100),
|
||||||
|
'item_est_value' => $faker->numberBetween(50, 500),
|
||||||
|
'item_assigned_num' => $faker->unique()->numberBetween(1, 500),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// CarShowCategory
|
||||||
|
$factory->define(App\Models\CarShowCategory::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'category_name' => $faker->words(2, true),
|
||||||
|
'vehicle_type' => $faker->boolean,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Vehicles
|
||||||
|
$factory->define(App\Models\Vehicles::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'year' => $faker->year,
|
||||||
|
'make' => $faker->company,
|
||||||
|
'model' => $faker->word,
|
||||||
|
'type' => function () {
|
||||||
|
return factory(App\Models\CarShowCategory::class)->create()->id;
|
||||||
|
},
|
||||||
|
'doNotJudge' => $faker->boolean,
|
||||||
|
'owner' => function () {
|
||||||
|
return factory(App\Models\Bidders::class)->create()->bidder_assigned_number;
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// PaymentMethods
|
||||||
|
$factory->define(App\Models\PaymentMethods::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'pm_name' => $faker->randomElement(['Cash', 'Check', 'Credit Card']),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Judges
|
||||||
|
$factory->define(App\Models\Judges::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'judge_number' => $faker->unique()->numberBetween(1, 50),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// VehicleScores
|
||||||
|
$factory->define(App\Models\VehicleScores::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'judge' => function () {
|
||||||
|
return factory(App\Models\Judges::class)->create()->id;
|
||||||
|
},
|
||||||
|
'overall_score' => $faker->numberBetween(1, 100),
|
||||||
|
'vehicle' => function () {
|
||||||
|
return factory(App\Models\Vehicles::class)->create()->id;
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// PeoplesChoice
|
||||||
|
$factory->define(App\Models\PeoplesChoice::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'vehicle' => function () {
|
||||||
|
return factory(App\Models\Vehicles::class)->create()->id;
|
||||||
|
},
|
||||||
|
'pc_count' => $faker->numberBetween(0, 50),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// WinningBids
|
||||||
|
$factory->define(App\Models\WinningBids::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'winning_bidder_num' => function () {
|
||||||
|
return factory(App\Models\Bidders::class)->create()->idbidders;
|
||||||
|
},
|
||||||
|
'winning_cost' => $faker->numberBetween(10, 1000),
|
||||||
|
'winning_item_num' => function () {
|
||||||
|
return factory(App\Models\Items::class)->create()->iditems;
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Checkout
|
||||||
|
$factory->define(App\Models\Checkout::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'bidder_num' => function () {
|
||||||
|
return factory(App\Models\Bidders::class)->create()->idbidders;
|
||||||
|
},
|
||||||
|
'winnertotal' => $faker->numberBetween(10, 2000),
|
||||||
|
'payment_method' => function () {
|
||||||
|
return factory(App\Models\PaymentMethods::class)->create()->pm_id;
|
||||||
|
},
|
||||||
|
'check_number' => $faker->optional()->numberBetween(100, 999),
|
||||||
|
'cc_transaction' => $faker->optional()->uuid,
|
||||||
|
'cc_amount' => $faker->optional()->numberBetween(10, 2000),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// CarShowWinner
|
||||||
|
$factory->define(App\Models\CarShowWinner::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'vehicle' => function () {
|
||||||
|
return factory(App\Models\Vehicles::class)->create()->id;
|
||||||
|
},
|
||||||
|
'category' => function () {
|
||||||
|
return factory(App\Models\CarShowCategory::class)->create()->id;
|
||||||
|
},
|
||||||
|
'place' => $faker->numberBetween(1, 3),
|
||||||
|
'total_score' => $faker->numberBetween(50, 300),
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->string('provider_name')->nullable();
|
||||||
|
$table->string('provider_id')->nullable();
|
||||||
|
$table->unique(['provider_name', 'provider_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->dropUnique(['provider_name', 'provider_id']);
|
||||||
|
$table->dropColumn(['provider_name', 'provider_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\Bidders;
|
||||||
|
|
||||||
|
class BiddersTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
factory(Bidders::class, 50)->create();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\CarShowCategory;
|
||||||
|
|
||||||
|
class CarShowCategoryTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
factory(CarShowCategory::class, 10)->create();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\CarShowWinner;
|
||||||
|
use App\Models\Vehicles;
|
||||||
|
use App\Models\CarShowCategory;
|
||||||
|
|
||||||
|
class CarShowWinnerTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$categories = CarShowCategory::all();
|
||||||
|
$vehicles = Vehicles::all();
|
||||||
|
|
||||||
|
foreach ($categories as $category) {
|
||||||
|
for ($i = 1; $i <= 3; $i++) {
|
||||||
|
factory(CarShowWinner::class)->create([
|
||||||
|
'category' => $category->id,
|
||||||
|
'vehicle' => $vehicles->random()->id,
|
||||||
|
'place' => $i,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\Checkout;
|
||||||
|
use App\Models\Bidders;
|
||||||
|
use App\Models\PaymentMethods;
|
||||||
|
|
||||||
|
class CheckoutTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$bidders = Bidders::all();
|
||||||
|
$paymentMethods = PaymentMethods::all();
|
||||||
|
|
||||||
|
foreach ($bidders as $bidder) {
|
||||||
|
if (rand(0, 1)) {
|
||||||
|
factory(Checkout::class)->create([
|
||||||
|
'bidder_num' => $bidder->idbidders,
|
||||||
|
'payment_method' => $paymentMethods->random()->pm_id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,6 +11,17 @@ class DatabaseSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
// $this->call(UsersTableSeeder::class);
|
$this->call(UsersTableSeeder::class);
|
||||||
|
$this->call(PaymentMethodsTableSeeder::class);
|
||||||
|
$this->call(CarShowCategoryTableSeeder::class);
|
||||||
|
$this->call(BiddersTableSeeder::class);
|
||||||
|
$this->call(ItemsTableSeeder::class);
|
||||||
|
$this->call(JudgesTableSeeder::class);
|
||||||
|
$this->call(VehiclesTableSeeder::class);
|
||||||
|
$this->call(VehicleScoresTableSeeder::class);
|
||||||
|
$this->call(PeoplesChoiceTableSeeder::class);
|
||||||
|
$this->call(WinningBidsTableSeeder::class);
|
||||||
|
$this->call(CheckoutTableSeeder::class);
|
||||||
|
$this->call(CarShowWinnerTableSeeder::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\Items;
|
||||||
|
|
||||||
|
class ItemsTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
factory(Items::class, 30)->create();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\Judges;
|
||||||
|
|
||||||
|
class JudgesTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
factory(Judges::class, 5)->create();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\PaymentMethods;
|
||||||
|
|
||||||
|
class PaymentMethodsTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
PaymentMethods::create(['pm_name' => 'Cash']);
|
||||||
|
PaymentMethods::create(['pm_name' => 'Check']);
|
||||||
|
PaymentMethods::create(['pm_name' => 'Credit Card']);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\PeoplesChoice;
|
||||||
|
use App\Models\Vehicles;
|
||||||
|
|
||||||
|
class PeoplesChoiceTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$vehicles = Vehicles::all();
|
||||||
|
|
||||||
|
foreach ($vehicles as $vehicle) {
|
||||||
|
factory(PeoplesChoice::class)->create([
|
||||||
|
'vehicle' => $vehicle->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\User;
|
||||||
|
|
||||||
|
class UsersTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
factory(User::class, 10)->create();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\VehicleScores;
|
||||||
|
use App\Models\Judges;
|
||||||
|
use App\Models\Vehicles;
|
||||||
|
|
||||||
|
class VehicleScoresTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$judges = Judges::all();
|
||||||
|
$vehicles = Vehicles::all();
|
||||||
|
|
||||||
|
foreach ($vehicles as $vehicle) {
|
||||||
|
foreach ($judges as $judge) {
|
||||||
|
factory(VehicleScores::class)->create([
|
||||||
|
'judge' => $judge->id,
|
||||||
|
'vehicle' => $vehicle->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\Vehicles;
|
||||||
|
use App\Models\CarShowCategory;
|
||||||
|
use App\Models\Bidders;
|
||||||
|
|
||||||
|
class VehiclesTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$categories = CarShowCategory::all();
|
||||||
|
$bidders = Bidders::all();
|
||||||
|
|
||||||
|
factory(Vehicles::class, 40)->create([
|
||||||
|
'type' => function () use ($categories) {
|
||||||
|
return $categories->random()->id;
|
||||||
|
},
|
||||||
|
'owner' => function () use ($bidders) {
|
||||||
|
return $bidders->random()->bidder_assigned_number;
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Models\WinningBids;
|
||||||
|
use App\Models\Bidders;
|
||||||
|
use App\Models\Items;
|
||||||
|
|
||||||
|
class WinningBidsTableSeeder extends Seeder
|
||||||
|
{
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$bidders = Bidders::all();
|
||||||
|
$items = Items::all();
|
||||||
|
|
||||||
|
foreach ($items as $item) {
|
||||||
|
if (rand(0, 1)) {
|
||||||
|
factory(WinningBids::class)->create([
|
||||||
|
'winning_bidder_num' => $bidders->random()->idbidders,
|
||||||
|
'winning_item_num' => $item->iditems,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -54,6 +54,10 @@
|
|||||||
Login
|
Login
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<a href="{{ url('auth/social/oidc') }}" class="btn btn-primary">
|
||||||
|
Login with OIDC
|
||||||
|
</a>
|
||||||
|
|
||||||
<a class="btn btn-link" href="{{ route('password.request') }}">
|
<a class="btn btn-link" href="{{ route('password.request') }}">
|
||||||
Forgot Your Password?
|
Forgot Your Password?
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -1,22 +1,5 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@push('styles')
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.select2-container .select2-selection--single {
|
|
||||||
height: 34px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
|
||||||
line-height: 34px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
|
||||||
height: 32px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -49,15 +32,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#checkoutbiddernum').select2({
|
|
||||||
placeholder: "Select a bidder",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|||||||
@@ -1,22 +1,5 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@push('styles')
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.select2-container .select2-selection--single {
|
|
||||||
height: 34px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
|
||||||
line-height: 34px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
|
||||||
height: 32px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -66,19 +49,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#winid').select2({
|
|
||||||
placeholder: "Select an item/winner",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
$('#winnerbiddernum').select2({
|
|
||||||
placeholder: "Select a bidder",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|||||||
@@ -12,6 +12,20 @@
|
|||||||
|
|
||||||
<!-- Styles -->
|
<!-- Styles -->
|
||||||
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
|
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
||||||
|
<style>
|
||||||
|
.select2-container .select2-selection--single {
|
||||||
|
height: 34px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
|
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@stack('styles')
|
@stack('styles')
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -221,6 +235,16 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<ul class="dropdown-menu" role="menu">
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{ url('admin') }}">
|
||||||
|
Admin
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ url('auth/social/oidc') }}">
|
||||||
|
Link OIDC Account
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ route('logout') }}"
|
<a href="{{ route('logout') }}"
|
||||||
onclick="event.preventDefault();
|
onclick="event.preventDefault();
|
||||||
@@ -245,6 +269,15 @@
|
|||||||
|
|
||||||
<!-- Scripts -->
|
<!-- Scripts -->
|
||||||
<script src="{{ asset('js/app.js') }}"></script>
|
<script src="{{ asset('js/app.js') }}"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('select').select2({
|
||||||
|
placeholder: "Select an option",
|
||||||
|
allowClear: true
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@stack('scripts')
|
@stack('scripts')
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,22 +1,5 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@push('styles')
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.select2-container .select2-selection--single {
|
|
||||||
height: 34px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
|
||||||
line-height: 34px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
|
||||||
height: 32px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -49,15 +32,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#reprintbiddernum').select2({
|
|
||||||
placeholder: "Select a bidder",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|||||||
@@ -1,22 +1,5 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@push('styles')
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.select2-container .select2-selection--single {
|
|
||||||
height: 34px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
|
||||||
line-height: 34px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
|
||||||
height: 32px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -37,6 +20,14 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class=form-group>
|
||||||
|
<label for=winnerbid class="col-sm-3 col-sm-offset-1 control-label">
|
||||||
|
Winning Bid:
|
||||||
|
</label>
|
||||||
|
<div class=col-sm-4>
|
||||||
|
<input type="text" name="winnerbid" id="winnerbid" class=form-control />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class=form-group>
|
<div class=form-group>
|
||||||
<label for=winnerbiddernum class="col-sm-3 col-sm-offset-1 control-label">
|
<label for=winnerbiddernum class="col-sm-3 col-sm-offset-1 control-label">
|
||||||
Bidder Number:
|
Bidder Number:
|
||||||
@@ -47,14 +38,6 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class=form-group>
|
|
||||||
<label for=winnerbid class="col-sm-3 col-sm-offset-1 control-label">
|
|
||||||
Winning Bid:
|
|
||||||
</label>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<input type="text" name="winnerbid" id="winnerbid" class=form-control />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class=form-group>
|
<div class=form-group>
|
||||||
<div class="col-sm-offset-5 col-sm-10">
|
<div class="col-sm-offset-5 col-sm-10">
|
||||||
<button type="submit" value="Submit" class="btn btn-primary">Submit</button>
|
<button type="submit" value="Submit" class="btn btn-primary">Submit</button>
|
||||||
@@ -67,20 +50,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#winnerbiddernum').select2({
|
|
||||||
placeholder: "Select a bidder",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
// Also making item number searchable as it's generally expected for "typed in" lookups
|
|
||||||
$('#winneritemnum').select2({
|
|
||||||
placeholder: "Select an item",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|||||||
@@ -1,22 +1,5 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@push('styles')
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.select2-container .select2-selection--single {
|
|
||||||
height: 34px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
|
||||||
line-height: 34px;
|
|
||||||
}
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
|
||||||
height: 32px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -49,15 +32,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#winnerbiddernum').select2({
|
|
||||||
placeholder: "Select a bidder",
|
|
||||||
allowClear: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|||||||
@@ -14,6 +14,10 @@ if (env('APP_ENV') === 'production') {
|
|||||||
URL::forceScheme('https');
|
URL::forceScheme('https');
|
||||||
}
|
}
|
||||||
Auth::routes(['register' => false]);
|
Auth::routes(['register' => false]);
|
||||||
|
|
||||||
|
Route::get('auth/social/{provider}', 'Auth\SocialiteController@redirectToProvider');
|
||||||
|
Route::get('auth/social/{provider}/callback', 'Auth\SocialiteController@handleProviderCallback');
|
||||||
|
|
||||||
Route::get('/', [ 'uses' => 'PagesController@home']);
|
Route::get('/', [ 'uses' => 'PagesController@home']);
|
||||||
Route::get('home', [ 'uses' => 'PagesController@home']);
|
Route::get('home', [ 'uses' => 'PagesController@home']);
|
||||||
Route::get('winningbidderlist', [ 'uses' => 'PagesController@winningbidderlist']);
|
Route::get('winningbidderlist', [ 'uses' => 'PagesController@winningbidderlist']);
|
||||||
|
|||||||
Reference in New Issue
Block a user