Skip to content

Commit 4c496cd

Browse files
committed
Complete support for new spatie permissions teams
1 parent d27a093 commit 4c496cd

File tree

4 files changed

+26
-66
lines changed

4 files changed

+26
-66
lines changed

src/Console/LaravelCrmPermissions.php

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public function handle()
5656

5757
foreach (DB::table('teams')->get() as $team) {
5858
foreach (DB::table('roles')
59+
->where('crm_role', 1)
5960
->whereNull('team_id')
6061
->get() as $role) {
6162
$this->info('Inserting role '.$role->name.' for team '.$team->name);
@@ -82,31 +83,12 @@ public function handle()
8283
->leftJoin('role_has_permissions', 'permissions.id', '=', 'role_has_permissions.permission_id')
8384
->where('role_has_permissions.role_id', $role->id)
8485
->get() as $permission) {
85-
$this->info('Inserting permission '.$permission->name.' for role '.$role->name);
86-
87-
DB::table('permissions')->updateOrInsert([
88-
'name' => $permission->name,
89-
'guard_name' => $permission->guard_name,
90-
'description' => $permission->description,
91-
'crm_permission' => $permission->crm_permission,
92-
'team_id' => $team->id,
93-
], [
94-
'created_at' => Carbon::now(),
95-
'updated_at' => Carbon::now(),
96-
]);
86+
$this->info('Assigning permission '.$permission->name.' for role '.$role->name);
9787

98-
if ($newPermission = DB::table('permissions')->where([
99-
'name' => $permission->name,
100-
'guard_name' => $permission->guard_name,
101-
'description' => $permission->description,
102-
'crm_permission' => $permission->crm_permission,
103-
'team_id' => $team->id,
104-
])->first()) {
105-
DB::table('role_has_permissions')->updateOrInsert([
106-
'permission_id' => $newPermission->id,
107-
'role_id' => $newRole->id,
108-
]);
109-
}
88+
DB::table('role_has_permissions')->updateOrInsert([
89+
'permission_id' => $permission->id,
90+
'role_id' => $newRole->id,
91+
]);
11092
}
11193
}
11294
}

src/Http/Middleware/HasCrmAccess.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace VentureDrake\LaravelCrm\Http\Middleware;
44

55
use Closure;
6+
use VentureDrake\LaravelCrm\Models\Role;
67

78
class HasCrmAccess
89
{
@@ -30,8 +31,15 @@ public function handle($request, Closure $next)
3031
'crm_access' => 1,
3132
])->save();
3233
} elseif (config('laravel-crm.teams') && auth()->user()->currentTeam->user_id == auth()->user()->id && ! auth()->user()->hasRole('Owner')) {
33-
auth()->user()->assignRole('Owner');
34-
34+
35+
if($role = Role::where([
36+
'name' => 'Owner',
37+
'team_id' => auth()->user()->currentTeam->id,
38+
'crm_role' => 1
39+
])->first()){
40+
auth()->user()->assignRole($role->name);
41+
}
42+
3543
auth()->user()->forceFill([
3644
'crm_access' => 1,
3745
])->save();

src/LaravelCrmServiceProvider.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,12 @@ class_alias('App\Models\Team', 'App\Team');
8383

8484
// Middleware
8585
$router->aliasMiddleware('auth.laravel-crm', Authenticate::class);
86-
$router->pushMiddlewareToGroup('crm', TeamsPermission::class);
87-
$router->pushMiddlewareToGroup('api', TeamsPermission::class);
86+
87+
if(config('laravel-crm.teams')){
88+
$router->pushMiddlewareToGroup('web', TeamsPermission::class);
89+
$router->pushMiddlewareToGroup('api', TeamsPermission::class);
90+
}
91+
8892
$router->pushMiddlewareToGroup('crm', Settings::class);
8993
$router->pushMiddlewareToGroup('api', Settings::class);
9094
$router->pushMiddlewareToGroup('crm', HasCrmAccess::class);

src/Observers/TeamObserver.php

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public function created(Team $team)
3232

3333
// Get the roles
3434
foreach (DB::table('roles')
35+
->where('crm_role', 1)
3536
->whereNull('team_id')
3637
->get() as $role) {
3738
DB::table('roles')->updateOrInsert([
@@ -52,49 +53,14 @@ public function created(Team $team)
5253
'crm_role' => $role->crm_role,
5354
'team_id' => $team->id,
5455
])->first()) {
55-
if ($role->name == 'Owner') {
56-
if ((app()->version() >= 8 && class_exists('App\Models\User')) || (class_exists('App\Models\User') && ! class_exists('App\User'))) {
57-
DB::table('model_has_roles')->updateOrInsert([
58-
'role_id' => $newRole->id,
59-
'model_type' => 'App\Models\User',
60-
'model_id' => auth()->user()->id,
61-
]);
62-
} else {
63-
DB::table('model_has_roles')->updateOrInsert([
64-
'role_id' => $newRole->id,
65-
'model_type' => 'App\User',
66-
'model_id' => auth()->user()->id,
67-
]);
68-
}
69-
}
70-
7156
foreach (DB::table('permissions')
7257
->leftJoin('role_has_permissions', 'permissions.id', '=', 'role_has_permissions.permission_id')
7358
->where('role_has_permissions.role_id', $role->id)
7459
->get() as $permission) {
75-
DB::table('permissions')->updateOrInsert([
76-
'name' => $permission->name,
77-
'guard_name' => $permission->guard_name,
78-
'description' => $permission->description,
79-
'crm_permission' => $permission->crm_permission,
80-
'team_id' => $team->id,
81-
], [
82-
'created_at' => Carbon::now(),
83-
'updated_at' => Carbon::now(),
60+
DB::table('role_has_permissions')->updateOrInsert([
61+
'permission_id' => $permission->id,
62+
'role_id' => $newRole->id,
8463
]);
85-
86-
if ($newPermission = DB::table('permissions')->where([
87-
'name' => $permission->name,
88-
'guard_name' => $permission->guard_name,
89-
'description' => $permission->description,
90-
'crm_permission' => $permission->crm_permission,
91-
'team_id' => $team->id,
92-
])->first()) {
93-
DB::table('role_has_permissions')->updateOrInsert([
94-
'permission_id' => $newPermission->id,
95-
'role_id' => $newRole->id,
96-
]);
97-
}
9864
}
9965
}
10066
}

0 commit comments

Comments
 (0)