From 40830f327de9a220546ca174efcf36b5fbc664d4 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 17 May 2018 12:26:32 +0800 Subject: [PATCH 1/3] added dockerignore added wait for db before app started --- .dockerignore | 2 ++ Dockerfile | 7 +++-- docker-compose.yml | 29 +++++++++++---------- resources/assets/js/pages/auth/register.vue | 4 ++- wait.sh | 8 +++++- 5 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..91be243c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +vendor +node_modules diff --git a/Dockerfile b/Dockerfile index a6a73f12..cb811351 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -FROM php:7 -RUN apt-get update -y && apt-get install -y openssl zip unzip git zlib1g-dev +FROM php:7.1.3 +RUN apt-get update -y && apt-get install -y openssl zip unzip git zlib1g-dev netcat mysql-client RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN docker-php-ext-install pdo pdo_mysql zip WORKDIR /app @@ -8,6 +8,5 @@ RUN composer install COPY wait.sh /usr/local/bin/wait.sh RUN chmod +x /usr/local/bin/wait.sh - -CMD /usr/local/bin/wait.sh && php artisan serve --host=0.0.0.0 --port=8000 +CMD /usr/local/bin/wait.sh && php artisan migrate && php artisan db:seed && php artisan serve --host=0.0.0.0 --port=8000 EXPOSE 8000 diff --git a/docker-compose.yml b/docker-compose.yml index e7aa352c..48d64a54 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,5 @@ -version: '2' +version: '3' services: - app: - build: . - ports: - - "8000:8000" - volumes: - - .:/app - env_file: .env - working_dir: /app - command: bash -c 'sh /usr/local/bin/wait.sh && php artisan migrate && php artisan db:seed && php artisan serve --host 0.0.0.0' - depends_on: - - mysql - links: - - mysql mysql: build: context: ./docker/mysql @@ -30,6 +17,20 @@ services: ports: - "3306:3306" + app: + build: . + ports: + - "8000:8000" + volumes: + - .:/app + env_file: .env + working_dir: /app + depends_on: + - mysql + links: + - mysql + + phpmyadmin: depends_on: - mysql diff --git a/resources/assets/js/pages/auth/register.vue b/resources/assets/js/pages/auth/register.vue index daef674b..27d6e340 100644 --- a/resources/assets/js/pages/auth/register.vue +++ b/resources/assets/js/pages/auth/register.vue @@ -98,7 +98,9 @@ export default { if(store.getters['auth/user'].role === 'admin'){ this.$router.push({ name: 'admin.home' }) } - this.$router.push({ name: 'home' }) + else{ + this.$router.push({ name: 'home' }) + } } } } diff --git a/wait.sh b/wait.sh index ee7909a3..60ec0044 100644 --- a/wait.sh +++ b/wait.sh @@ -1,7 +1,13 @@ #!/bin/bash +HOST="mysql" +PORT="3306" +USER="default" +PASSWORD="secret" +DATABASE="default" + echo "Waiting for mysql" -until mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" &> /dev/null +until nc -w 1 -z mysql 3306 &> /dev/null do printf "." sleep 1 From d23d1defda402c23e882abe2cdf5d417d56047a5 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 19 May 2018 10:54:14 +0800 Subject: [PATCH 2/3] added user role seeder updated user seeder for better memorization name --- database/seeds/DatabaseSeeder.php | 1 + database/seeds/UserRoleTableSeeder.php | 25 +++++++++++++++++++++++++ database/seeds/UsersTableSeeder.php | 11 +++++------ 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 database/seeds/UserRoleTableSeeder.php diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index ea90e732..264b3fa4 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -13,6 +13,7 @@ class DatabaseSeeder extends Seeder { $this->call(UsersTableSeeder::class); $this->call(RolesAndPermissionsSeeder::class); + $this->call(UserRoleTableSeeder::class); } diff --git a/database/seeds/UserRoleTableSeeder.php b/database/seeds/UserRoleTableSeeder.php new file mode 100644 index 00000000..608d2646 --- /dev/null +++ b/database/seeds/UserRoleTableSeeder.php @@ -0,0 +1,25 @@ +first(); + $admin = User::where("email", "=", "admin@example.com")->first(); + + $role_user = Role::where('name','=','member')->first(); + $role_admin = Role::where('name','=','admin')->first(); + + $user->attachRole($role_user); + $admin->attachRole($role_admin); + } +} diff --git a/database/seeds/UsersTableSeeder.php b/database/seeds/UsersTableSeeder.php index 3d6a73d9..ac5c6584 100644 --- a/database/seeds/UsersTableSeeder.php +++ b/database/seeds/UsersTableSeeder.php @@ -1,6 +1,7 @@ delete(); - + $users = array( - ['name' => 'Ryan Chenkie', 'email' => 'ryanchenkie@gmail.com', 'password' => Hash::make('secret')], - ['name' => 'Chris Sevilleja', 'email' => 'chris@scotch.io', 'password' => Hash::make('secret')], - ['name' => 'Holly Lloyd', 'email' => 'holly@scotch.io', 'password' => Hash::make('secret')], - ['name' => 'Adnan Kukic', 'email' => 'adnan@scotch.io', 'password' => Hash::make('secret')], + ['name' => 'User', 'email' => 'user@example.com', 'password' => Hash::make('secret')], + ['name' => 'Admin', 'email' => 'admin@example.com', 'password' => Hash::make('secret')], ); foreach ($users as $user) { - User::create($user); + $newUser = User::create($user); } From e539e0b3883a20f244ea44c95dcd7872566233f5 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 19 May 2018 12:01:26 +0800 Subject: [PATCH 3/3] fixed login and register frontend --- Dockerfile | 2 +- resources/assets/js/middleware/auth.js | 6 +++++- resources/assets/js/pages/auth/login.vue | 1 + resources/assets/js/pages/auth/register.vue | 1 + resources/assets/js/pages/home.vue | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index cb811351..dad9c2bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,5 +8,5 @@ RUN composer install COPY wait.sh /usr/local/bin/wait.sh RUN chmod +x /usr/local/bin/wait.sh -CMD /usr/local/bin/wait.sh && php artisan migrate && php artisan db:seed && php artisan serve --host=0.0.0.0 --port=8000 +CMD /usr/local/bin/wait.sh && composer dumpautoload && php artisan migrate && php artisan db:seed && php artisan serve --host=0.0.0.0 --port=8000 EXPOSE 8000 diff --git a/resources/assets/js/middleware/auth.js b/resources/assets/js/middleware/auth.js index d1bb7af7..1302a8b7 100644 --- a/resources/assets/js/middleware/auth.js +++ b/resources/assets/js/middleware/auth.js @@ -3,7 +3,11 @@ import store from '~/store' export default async (to, from, next) => { if (!store.getters['auth/check']) { next({ name: 'login' }) - } else { + } + else if (store.getters['auth/user'].role == "admin"){ + next({ name : 'admin.home' }) + } + else { next() } } diff --git a/resources/assets/js/pages/auth/login.vue b/resources/assets/js/pages/auth/login.vue index aae968cf..e35dc708 100644 --- a/resources/assets/js/pages/auth/login.vue +++ b/resources/assets/js/pages/auth/login.vue @@ -55,6 +55,7 @@