Skip to content

Commit 16e1dfe

Browse files
committedOct 27, 2023
seeder added , tested with parmission package
1 parent a2fc13b commit 16e1dfe

File tree

9 files changed

+164
-14
lines changed

9 files changed

+164
-14
lines changed
 

‎README.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Its The Back-end Of Quizies App
44

55

6-
Quizies app repo link : https://github.com/mohitj2401/quizee
6+
Quizies app repo link : https://github.com/mohitj2401/Quiz_app
77

88

99
## Installation
@@ -13,7 +13,7 @@ Quizies app repo link : https://github.com/mohitj2401/quizee
1313
Type these command
1414

1515
2. cd quizie_backend
16-
3. Composer install
16+
3. composer install
1717
4. npm install
1818
5. cp .env.example .env (configure your database their)
1919
6. php artisan key:generate
@@ -24,7 +24,10 @@ Owner Account details :
2424
email : owner@gmail.com
2525
password : password@123
2626

27+
Teacher Account details :
2728

29+
email : teacher@gmail.com
30+
password : password@123
2831

2932
## About
3033

@@ -34,7 +37,9 @@ Owner Account details :
3437

3538
1. Allow to uploads from excel file
3639
2. Teachers can see all the student who attended their quiz and also can download quiz result
37-
3. Owner can manage every thing
40+
3. Owner can manage every thing
41+
4. Permission package added
42+
3843

3944

4045

‎app/Http/Controllers/Auth/RegisterController.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ protected function create(array $data)
7575
$api_token = time() . Str::random(30);
7676
$user->api_token = $api_token;
7777
$user->save();
78-
78+
$user->assignRole('Teacher');
7979
return $user;
8080
}
8181
}

‎app/Http/Controllers/Web/QuizController.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public function __construct()
2626
*/
2727
public function index()
2828
{
29-
if (!(auth()->user()->can('Create Quiz') || in_array('Owner', auth()->user()->getRoleNames()->toArray()))) {
29+
if (!(auth()->user()->can('view Quiz') || in_array('Owner', auth()->user()->getRoleNames()->toArray()))) {
3030
alert()->error("You Don't Have Enough Permission", 'Request Denied');
3131

3232
return redirect()->back();

‎database/migrations/2014_10_12_000000_create_users_table.php

-8
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@ public function up()
2828
$table->rememberToken();
2929
$table->timestamps();
3030
});
31-
32-
DB::table('users')->insert([
33-
'name' => 'Owner',
34-
'usertype_id' => 1,
35-
'api_token' => time() . Str::random(30),
36-
'email' => 'owner@gmail.com',
37-
'password' => Hash::make('password@123')
38-
]);
3931
}
4032

4133
/**

‎database/seeders/DatabaseSeeder.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ class DatabaseSeeder extends Seeder
1313
*/
1414
public function run()
1515
{
16-
// \App\Models\User::factory(10)->create();
16+
$this->call([
17+
PermissionSeeder::class,
18+
RoleSeeder::class,
19+
UserSeeder::class,
20+
21+
]);
1722
}
1823
}

‎database/seeders/PermissionSeeder.php

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Carbon\Carbon;
6+
use Illuminate\Database\Seeder;
7+
use Spatie\Permission\Models\Permission;
8+
use Illuminate\Support\Facades\DB;
9+
use Illuminate\Support\Facades\Log;
10+
use Spatie\Permission\Models\Role;
11+
12+
class PermissionSeeder extends Seeder
13+
{
14+
/**
15+
* Run the database seeds.
16+
*
17+
* @return void
18+
*/
19+
public function run()
20+
{
21+
22+
23+
// DB::table('model_has_permissions')->delete();
24+
// DB::table('model_has_roles')->delete();
25+
// DB::table('role_has_permissions')->delete();
26+
DB::table('permissions')->delete();
27+
DB::table('roles')->delete();
28+
// Permission::delete();
29+
$permissions = [
30+
31+
['name' => 'CRUD Role', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
32+
['name' => 'Crud Permission', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
33+
['name' => 'View Dashboard', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
34+
['name' => 'Report', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
35+
['name' => 'View Subject', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
36+
['name' => 'Edit Subject', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
37+
['name' => 'Delete Subject', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
38+
['name' => 'Create Subject', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
39+
['name' => 'Create User', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
40+
['name' => 'Edit User', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
41+
['name' => 'Delete User', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
42+
['name' => 'View User', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
43+
['name' => 'Delete Quiz', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
44+
['name' => 'Edit Quiz', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
45+
['name' => 'Create Quiz', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
46+
['name' => 'view Quiz', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
47+
['name' => 'Add Question', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
48+
['name' => 'Crud Apptheme', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
49+
50+
];
51+
Permission::insert($permissions);
52+
}
53+
}

‎database/seeders/RoleSeeder.php

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Carbon\Carbon;
6+
use Illuminate\Database\Seeder;
7+
use Spatie\Permission\Models\Role;
8+
use Illuminate\Support\Facades\DB;
9+
use Illuminate\Support\Facades\Log;
10+
use Spatie\Permission\Models\Permission;
11+
12+
class RoleSeeder extends Seeder
13+
{
14+
/**
15+
* Run the database seeds.
16+
*
17+
* @return void
18+
*/
19+
public function run()
20+
{
21+
DB::table('roles')->delete();
22+
// Permission::delete();
23+
$roles = [
24+
25+
['name' => 'Owner', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
26+
['name' => 'Teacher', 'guard_name' => 'web', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
27+
['name' => 'User', 'guard_name' => 'api', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()],
28+
29+
];
30+
31+
Role::insert($roles);
32+
33+
$role = Role::where('name', 'Owner')->first();
34+
$permissions = Permission::get()->pluck('name');
35+
36+
$role->syncPermissions($permissions);
37+
38+
$tecaher = Role::where('name', 'Teacher')->first();
39+
$permissions = Permission::whereIn('name', [
40+
'View Subject',
41+
'Create Subject',
42+
'Edit Subject',
43+
'Delete Subject',
44+
'view Quiz',
45+
'Create Quiz',
46+
'Edit Quiz',
47+
'Delete Quiz',
48+
'Add Question',
49+
])->get()->pluck('name');
50+
51+
$tecaher->syncPermissions($permissions);
52+
}
53+
}

‎database/seeders/UserSeeder.php

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use App\Models\User;
7+
use Illuminate\Support\Facades\DB;
8+
use Illuminate\Support\Facades\Hash;
9+
use Illuminate\Support\Facades\Log;
10+
11+
class UserSeeder extends Seeder
12+
{
13+
/**
14+
* Run the database seeds.
15+
*
16+
* @return void
17+
*/
18+
public function run()
19+
{
20+
DB::table('users')->delete();
21+
22+
$user = User::create([
23+
'name' => 'Owner',
24+
'usertype_id' => 1,
25+
'api_token' => '',
26+
'email' => 'owner@gmail.com',
27+
'password' => Hash::make('password@123')
28+
]);
29+
// Log::info($user);
30+
$user->assignRole('Owner');
31+
32+
$teacher = User::create([
33+
'name' => 'Teacher',
34+
'usertype_id' => 2,
35+
'api_token' => '',
36+
'email' => 'teacher@gmail.com',
37+
'password' => Hash::make('password@123')
38+
]);
39+
// Log::info($teacher);
40+
$teacher->assignRole('Teacher');
41+
}
42+
}
-72.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.