mirror of
https://github.com/anna-sara/vbytes_lan.git
synced 2025-12-24 05:17:13 +01:00
Compare commits
2 commits
4d261e8cbc
...
19c995ad66
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
19c995ad66 | ||
|
|
b74def256c |
9 changed files with 140 additions and 22 deletions
|
|
@ -7,9 +7,11 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Filament\Models\Contracts\FilamentUser;
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Filament\Auth\MultiFactor\Email\Contracts\HasEmailAuthentication;
|
||||
use Filament\Panel;
|
||||
|
||||
class User extends Authenticatable implements FilamentUser
|
||||
class User extends Authenticatable implements FilamentUser, HasEmailAuthentication, MustVerifyEmail
|
||||
{
|
||||
/** @use HasFactory<\Database\Factories\UserFactory> */
|
||||
use HasFactory, Notifiable;
|
||||
|
|
@ -23,6 +25,7 @@ class User extends Authenticatable implements FilamentUser
|
|||
'name',
|
||||
'email',
|
||||
'password',
|
||||
'has_email_authentication'
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -45,6 +48,7 @@ class User extends Authenticatable implements FilamentUser
|
|||
return [
|
||||
'email_verified_at' => 'datetime',
|
||||
'password' => 'hashed',
|
||||
'has_email_authentication' => 'boolean',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -52,4 +56,19 @@ class User extends Authenticatable implements FilamentUser
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function hasEmailAuthentication(): bool
|
||||
{
|
||||
// This method should return true if the user has enabled email authentication.
|
||||
|
||||
return $this->has_email_authentication;
|
||||
}
|
||||
|
||||
public function toggleEmailAuthentication(bool $condition): void
|
||||
{
|
||||
// This method should save whether or not the user has enabled email authentication.
|
||||
|
||||
$this->has_email_authentication = $condition;
|
||||
$this->save();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
|||
use Illuminate\Routing\Middleware\SubstituteBindings;
|
||||
use Illuminate\Session\Middleware\StartSession;
|
||||
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||
use Filament\Auth\MultiFactor\Email\EmailAuthentication;
|
||||
|
||||
class AdminPanelProvider extends PanelProvider
|
||||
{
|
||||
|
|
@ -28,11 +29,13 @@ class AdminPanelProvider extends PanelProvider
|
|||
->id('admin')
|
||||
->path('')
|
||||
->login()
|
||||
->registration()
|
||||
->profile()
|
||||
->multiFactorAuthentication([
|
||||
EmailAuthentication::make(),
|
||||
])
|
||||
->passwordReset()
|
||||
->emailVerification()
|
||||
->emailChangeVerification()
|
||||
->profile()
|
||||
->databaseNotifications()
|
||||
->colors([
|
||||
'primary' => Color::Amber,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
<?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->boolean('has_email_authentication')->default(false);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('has_email_authentication');
|
||||
});
|
||||
}
|
||||
};
|
||||
54
docker-compose.dev.yml
Normal file
54
docker-compose.dev.yml
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
services:
|
||||
web:
|
||||
image: laravel-www
|
||||
container_name: laravel-www
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/dev/Dockerfile
|
||||
volumes:
|
||||
- .:/var/www/html
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
- "8080:80"
|
||||
environment:
|
||||
CONTAINER_ROLE: app
|
||||
networks:
|
||||
- app
|
||||
db:
|
||||
container_name: laravel-mysql
|
||||
image: "mariadb"
|
||||
ports:
|
||||
- "3306:3306"
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${DB_DATABASE}
|
||||
MYSQL_USER: ${DB_USERNAME}
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
||||
volumes:
|
||||
- "mysql:/var/lib/mysql"
|
||||
networks:
|
||||
- app
|
||||
queue:
|
||||
image: laravel-www
|
||||
container_name: laravel-queue
|
||||
depends_on:
|
||||
- web
|
||||
- db
|
||||
volumes:
|
||||
- ./:/var/www/html
|
||||
networks:
|
||||
- app
|
||||
environment:
|
||||
APP_ENV: ${APP_ENV}
|
||||
CONTAINER_ROLE: queue
|
||||
CACHE_STORE: ${CACHE_STORE}
|
||||
SESSION_DRIVER: ${SESSION_DRIVER}
|
||||
QUEUE_CONNECTION: ${QUEUE_CONNECTION}
|
||||
networks:
|
||||
app:
|
||||
driver: bridge
|
||||
volumes:
|
||||
mysql:
|
||||
driver: local
|
||||
|
|
@ -7,8 +7,6 @@ services:
|
|||
dockerfile: docker/php/Dockerfile
|
||||
depends_on:
|
||||
- db
|
||||
volumes:
|
||||
- .:/var/www/html
|
||||
ports:
|
||||
- "8080:80"
|
||||
environment:
|
||||
|
|
@ -27,7 +25,7 @@ services:
|
|||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
||||
volumes:
|
||||
- "appdb:/var/lib/mysql"
|
||||
- "mysql:/var/lib/mysql"
|
||||
networks:
|
||||
- app
|
||||
queue:
|
||||
|
|
@ -35,8 +33,9 @@ services:
|
|||
container_name: laravel-queue
|
||||
depends_on:
|
||||
- web
|
||||
- db
|
||||
volumes:
|
||||
- .:/var/www/html
|
||||
- ./:/var/www/html
|
||||
networks:
|
||||
- app
|
||||
environment:
|
||||
|
|
@ -49,5 +48,5 @@ networks:
|
|||
app:
|
||||
driver: bridge
|
||||
volumes:
|
||||
appdb:
|
||||
mysql:
|
||||
driver: local
|
||||
17
docker/dev/Dockerfile
Normal file
17
docker/dev/Dockerfile
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
FROM php:8.2-apache
|
||||
RUN usermod -u 1000 www-data
|
||||
RUN a2enmod rewrite
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y gnupg2 zlib1g-dev libzip-dev zlib1g-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libxml2-dev libicu-dev
|
||||
RUN docker-php-ext-install zip mysqli pdo pdo_mysql && docker-php-ext-enable mysqli pdo pdo_mysql sodium
|
||||
RUN docker-php-ext-configure gd
|
||||
RUN docker-php-ext-install gd
|
||||
RUN docker-php-ext-configure intl
|
||||
RUN docker-php-ext-install intl
|
||||
|
||||
# Install Composer
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
|
||||
ENV APACHE_DOCUMENT_ROOT /var/www/html/public
|
||||
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
|
||||
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
|
||||
|
|
@ -8,37 +8,35 @@ COPY . /var/www/html
|
|||
COPY docker/apache/default.conf /etc/apache2/sites-available/000-default.conf
|
||||
COPY docker/scripts/start.sh /usr/local/bin/start
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
RUN chown -R www-data:www-data /var/www/html \
|
||||
&& chmod u+x /usr/local/bin/start \
|
||||
&& a2enmod rewrite
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y gnupg2 zlib1g-dev libzip-dev zlib1g-dev libicu-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libxml2-dev
|
||||
&& apt-get install -y gnupg2 zlib1g-dev libzip-dev zlib1g-dev libicu-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libxml2-dev curl unzip
|
||||
RUN docker-php-ext-install zip mysqli pdo pdo_mysql && docker-php-ext-enable mysqli pdo pdo_mysql sodium
|
||||
RUN docker-php-ext-configure gd
|
||||
RUN docker-php-ext-install gd
|
||||
RUN docker-php-ext-configure intl
|
||||
RUN docker-php-ext-install intl
|
||||
|
||||
# Install Node.js and build tools
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
nodejs \
|
||||
npm \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# Add Composer
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
&& composer install --no-interaction --no-progress
|
||||
|
||||
# Install Node.js and build tools
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
curl \
|
||||
nodejs \
|
||||
npm \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# Install Node.js dependencies and build assets
|
||||
RUN npm install && npm run build
|
||||
|
||||
RUN chown -R www-data:www-data /var/www/html
|
||||
|
||||
|
||||
WORKDIR /var/www/html
|
||||
|
||||
#EXPOSE 80
|
||||
CMD ["/usr/local/bin/start"]
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ if [ -f "/var/www/html/.env" ]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
if [ "${RUN_MIGRATIONS:-false}" = "true" ]; then
|
||||
php artisan migrate --force
|
||||
fi
|
||||
#if [ "${RUN_MIGRATIONS:-false}" = "true" ]; then
|
||||
#php artisan migrate --force
|
||||
#fi
|
||||
|
||||
if [ "$env" != "local" ]; then
|
||||
echo "Caching configuration..."
|
||||
|
|
|
|||
2
package-lock.json
generated
2
package-lock.json
generated
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "vbytes_hub",
|
||||
"name": "vbytes_lan",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
|||
Loading…
Reference in a new issue