You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 20, 2023. It is now read-only.
* Son olarak app/User.php model dosyanıza Crew yapısına ait CrewTrait dosyasını ekleyin;
26
+
* Son olarak ```app/User.php``` model dosyanıza **CrewTrait** dosyasını ekleyin;
32
27
```php
33
28
<?php
34
29
namespace App;
@@ -44,39 +39,77 @@ class User extends Authenticatable
44
39
```
45
40
46
41
## Kullanım
47
-
> Aşağıda kullanılan rol ve yetki isimleri sadece örnektir. CRUD işlemleri ile kendi oluşturduğunuz rol ve yetki isimlerini kullanmalısınız. CRUD işlemleri için ```Models``` dizininde yer alan ```Role``` ve ```Permission``` model dosyalarını kullanınız. CRUD işlemleriyle ilgili örnekler, dokümantasyonun en alt bölümünde yer almaktadır.
42
+
#### Rol ve yetki oluşturma
43
+
Rol ve yetkiler, klasik CRUD işlemleriyle oluşturulur. CRUD işlemleri için ```Models``` dizininde yer alan **Role** ve **Permission** model dosyaları kullanılmalıdır.
44
+
45
+
```php
46
+
<?php
47
+
# CodeForms\Repositories\Crew\Models\Role;
48
+
# Yeni rol oluşturma
49
+
Role::create([
50
+
'name' => 'Admin',
51
+
'slug' => 'admin'
52
+
]);
53
+
# Rol düzenleme
54
+
Role::where('id', $role_id)->update([
55
+
'name' => 'Site yöneticisi',
56
+
'slug' => 'manager'
57
+
]);
58
+
# Rol silme
59
+
Role::destroy($role_id);
60
+
Role::destroy([1,2,3]); // birden fazla role id'ler ile silme
61
+
62
+
# CodeForms\Repositories\Crew\Models\Permission;
63
+
# Yeni yetki oluşturma
64
+
Permission::create([
65
+
'name' => 'Yönetim ekranına erişim',
66
+
'slug' => 'dashboard'
67
+
]);
68
+
# Yetki düzenleme
69
+
Permission::where('id', $permission_id)->update([
70
+
'name' => 'İçerik düzenleme yetkisi',
71
+
'slug' => 'edit-content'
72
+
]);
73
+
# Yetki silme
74
+
Permission::destroy($permission_id);
75
+
Permission::destroy([1,2,3]); // birden fazla permission id'ler ile silme
76
+
```
77
+
78
+
> Aşağıda kullanılan rol ve yetki isimleri sadece örnektir. CRUD işlemleri ile kendi oluşturduğunuz rol ve yetki isimlerini kullanmalısınız.
48
79
49
80
#### Rol ve Yetki Sorgulama
50
81
Tüm sorgulama metotları her zaman bool (true/false) döner. Aşağıdaki örnekler PHP kodları içinde kullanılır.
82
+
83
+
##### Kullanıcı(lar) için rol ve yetki sorgulama;
51
84
```php
52
85
<?php
53
-
/**********************
54
-
* Kullanıcı işlemleri
55
-
*/
56
86
$user = User::find(1);
57
-
// hasRole ile tek bir kullanıcı rolü veya
58
-
// array içinde birden fazla roller de sorgulanabilir.
87
+
88
+
# bir kullanıcı için rol(ler) sorgulama
59
89
$user->hasRole('Admin');
60
90
$user->hasRole(['Admin', 'Editor']);
61
91
62
-
// hasPermission ile tek bir yetki veya
63
-
// array içinde birden fazla yetkiler de sorgulanabilir.
@@ -106,94 +139,65 @@ Blade dosyaları içinde yetki sorgulamak için Laravel'in varsayılan @can dire
106
139
107
140
#### Rota(route) dosyalarında role ve yetkilerin kullanımı
108
141
Crew yapısı sayesinde rol ve yetkiler aynı zamanda rotalarda da kullanılabilir. Yetki veya roller, rotanın ```middleware``` alanında belirtilir. Birden fazla rol ve yetki belirtmek istediğimizde, her bir rol ve yetki arasına '\|' dik çizgi (pipe) işareti konulur.
142
+
143
+
##### Rotalar için middleware'de 'permission' kullanımı;
144
+
109
145
```php
110
-
<?php
111
-
/**********************
112
-
* Yetkiler
113
-
*/
146
+
<?php
114
147
# aşağıdaki 'admin' sayfasına sadece 'dashboard 'yetkisine
115
148
# sahip olan kullanıcılar veya bu yetkiye sahip roller erişebilir
Bir rota grubu için tanımlanan rol veya yetkiler, grup içinde tanımlanacak olan tüm rotalar için geçerli olur. Böylece her bir rota için ayrı ayrı middleware tanımlaması yapılmaz.
133
-
```php
134
-
<?php
165
+
#### Rota grupları için middleware tanımlaması.
166
+
Bir rota grubu için tanımlanan rol veya yetkiler, grup içinde tanımlanacak olan tüm rotalar için geçerli olur. Böylece her bir rota için ayrı ayrı middleware tanımlaması yapılmaz.
167
+
168
+
##### Rota grupları için middleware'de rol tanımlama;
169
+
```php
170
+
<?php
135
171
Route::group([
136
172
'prefix' => 'admin/dashboard',
137
173
'middleware' => 'role:Admin|Editor'
138
174
], function ()
139
175
{
176
+
/**
177
+
* Aşağıdaki rotalara sadece Admin ve Editor rollerine
0 commit comments