Skip to content
This repository was archived by the owner on Aug 20, 2023. It is now read-only.

Commit 85e0807

Browse files
Updated README_TR
1 parent 04da5fa commit 85e0807

File tree

1 file changed

+86
-82
lines changed

1 file changed

+86
-82
lines changed

README_TR.md

Lines changed: 86 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,22 @@ Laravel tabanlı yapılar için basit ve hafif kullanıcı grupları ve yetkiler
88
## Kurulum
99
* Migration dosyasını kullanarak veri tabanı için gerekli tabloları oluşturun;
1010
``` php artisan migrate```
11-
* Laravel'in app.php config dosyasının ```providers``` alanına aşağıdaki satırı ekleyin;
11+
* Laravel'in **app.php** config dosyasının ```providers``` alanına **ayrıca** aşağıdaki satırı ekleyin;
1212
```php
1313
<?php
1414
'providers' => [
15-
...
16-
...
1715
CodeForms\Repositories\Crew\Providers\CrewServiceProvider::class,
18-
...
1916
]
2017
```
21-
* app/Http/Kernel.php dosyasındaki ```routeMiddleware``` bölümüne aşağıdaki satırları ekleyin.
18+
* **app/Http/Kernel.php** dosyasındaki ```routeMiddleware``` bölümüne **ayrıca** aşağıdaki satırları ekleyin.
2219
```php
2320
<?php
2421
protected $routeMiddleware = [
25-
...
2622
'role' => \CodeForms\Repositories\Crew\Middleware\RoleMiddleware::class,
2723
'permission' => \CodeForms\Repositories\Crew\Middleware\PermissionMiddleware::class,
28-
...
2924
];
3025
```
31-
* 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;
3227
```php
3328
<?php
3429
namespace App;
@@ -44,39 +39,77 @@ class User extends Authenticatable
4439
```
4540

4641
## 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.
4879
4980
#### Rol ve Yetki Sorgulama
5081
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;
5184
```php
5285
<?php
53-
/**********************
54-
* Kullanıcı işlemleri
55-
*/
5686
$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
5989
$user->hasRole('Admin');
6090
$user->hasRole(['Admin', 'Editor']);
6191

62-
// hasPermission ile tek bir yetki veya
63-
// array içinde birden fazla yetkiler de sorgulanabilir.
92+
# bir kullanıcı için yetki(ler) sorgulama
6493
$user->hasPermission('edit-post');
6594
$user->hasPermission(['edit-post', 'delete-post']);
66-
95+
```
96+
##### Kullanıcılar için yetki ve rol atama işlemleri;
97+
```php
98+
<?php
6799
# bir kullanıcıya rol atama
68100
$user->setRole('Admin');
69101
$user->setRole(['User', 'Customer']); // array olarak çoklu atama
70102

71103
# bir kullanıcıya yetkiler atama
72104
$user->setPermission('edit-post');
73105
$user->setPermission(['edit-post', 'delete-post', 'upload']); // array olarak çoklu atama
74-
75-
/**********************
76-
* Rol işlemleri
77-
*/
106+
```
107+
##### Roller için yetki sorgulama ve atama işlemleri;
108+
```php
109+
<?php
78110
$role = Role::find(1);
79-
// bir rolün sahip olduğu yetkiler de aynı şekilde sorgulanabilir.
111+
112+
# bir rol için yetki sorgulama
80113
$role->hasPermission('edit-post');
81114
$role->hasPermission(['edit-post', 'delete-post']);
82115

@@ -106,94 +139,65 @@ Blade dosyaları içinde yetki sorgulamak için Laravel'in varsayılan @can dire
106139

107140
#### Rota(route) dosyalarında role ve yetkilerin kullanımı
108141
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+
109145
```php
110-
<?php
111-
/**********************
112-
* Yetkiler
113-
*/
146+
<?php
114147
# aşağıdaki 'admin' sayfasına sadece 'dashboard 'yetkisine
115148
# sahip olan kullanıcılar veya bu yetkiye sahip roller erişebilir
116149
Route::get('admin', 'DashboardController@index')->middleware('permission:dashboard');
117150

118151
# aşağıdaki içerik düzenleme sayfasına sadece 'dashboard' ve 'edit-post'
119152
# yetkisine sahip kullanıcılar veya bu yetkiye sahip roller erişebilir.
120153
Route::get('admin/post/{id}', 'DashboardController@edit')->middleware('permission:dashboard|edit-post');
154+
```
155+
156+
##### Rotalar için middleware'de 'role' kullanımı;
121157

122-
/**********************
123-
* Roller
124-
*/
125-
# Admin rolüne sahip olanlar bu sayfaya erişebilir
158+
```php
159+
# Bu rotaya sadece 'Admin' rolüne sahip olanlar erişebilir
126160
Route::get('admin/users', 'BackendUserController@index')->middleware('role:Admin');
127161

128-
# Admin ve Editor rolüne sahip olanlar bu sayfaya erişebilir
162+
# Bu rotaya sadece Admin veya Editor rolüne sahip olanlar erişebilir
129163
Route::get('admin/posts', 'BackendPostController@index')->middleware('role:Admin|Editor');
130164
```
131-
#### Rota grupları için middleware tanımlaması.
132-
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
135171
Route::group([
136172
'prefix' => 'admin/dashboard',
137173
'middleware' => 'role:Admin|Editor'
138174
], function ()
139175
{
176+
/**
177+
* Aşağıdaki rotalara sadece Admin ve Editor rollerine
178+
* sahip kullanıcılara erişebilir.
179+
*/
140180
Route::get('posts', 'BackendPostController@index');
141181
Route::get('posts/{id}', 'BackendPostController@edit');
142-
...
143-
/**********************
144-
* Rota grupları için middleware'de 'yetki' tanımlama
145-
*/
182+
});
183+
```
184+
##### Rota grupları için middleware'de yetki tanımlama;
185+
```php
186+
<?php
146187
Route::group([
147188
'prefix' => 'admin/dashboard',
148189
'middleware' => 'permission:edit-post|delete-post'
149190
], function ()
150191
{
151192
Route::get('posts', 'BackendPostController@index');
152193

153-
# aşağıdaki rotaya, üstteki rota grubunda belirtilen 'edit-post' ve 'delete-post'
154-
# yetkilerine sahip olmanın yanında, ayrıca 'upload' yetkisi olanlar girebilir.
155-
# Yani bir kullanıcı, rota grubunda belirtilen yetkilere (edit-post, delete-post)
156-
# sahip olsa bile, eğer 'upload' yetkisine sahip değilse bu rotaya erişemez.
194+
# bir kullanıcı, rota grubunda belirtilen yetkilere (edit-post, delete-post)
195+
# sahip olsa bile, eğer bu rotada ek olarak belirtilen 'upload' yetkisine sahip değilse
196+
# bu rotaya erişemez.
157197
Route::get('posts/{id}', 'BackendPostController@edit')->middleware('permission:upload');
158198

159-
# bu rotaya, üstteki rota grubunda belirtilen yetkilere sahip olmanın yanında,
160-
# ayrıca 'Admin' rolüne sahip olanlar erişebilir. Yani bir kullanıcı, rota grubunda
161-
# belirtilen yetkilere (edit-post, delete-post) sahip olsa bile, eğer Admin değilse
162-
# bu rotaya erişemez.
199+
# bir kullanıcı, rota grubunda belirtilen yetkilere (edit-post, delete-post)
200+
# sahip olsa bile, eğer 'Admin' değilse bu rotaya erişemez.
163201
Route::post('posts/{id}/delete', 'BackendPostController@delete')->middleware('role:Admin');
164-
...
165-
```
166-
167-
## Rol ve Yetki oluşturma işlemleri (Temel CRUD işlemleri)
168-
```php
169-
<?php
170-
# CodeForms\Repositories\Crew\Models\Role;
171-
# Yeni rol oluşturma
172-
Role::create([
173-
'name' => 'Admin',
174-
'slug' => 'admin'
175-
]);
176-
# Rol düzenleme
177-
Role::where('id', $role_id)->update([
178-
'name' => 'Site yöneticisi',
179-
'slug' => 'manager'
180-
]);
181-
# Rol silme
182-
Role::destroy($role_id);
183-
Role::destroy([1,2,3]); // birden fazla role id'ler ile silme
184-
185-
# CodeForms\Repositories\Crew\Models\Permission;
186-
# Yeni yetki oluşturma
187-
Permission::create([
188-
'name' => 'Yönetim ekranına erişim',
189-
'slug' => 'dashboard'
190-
]);
191-
# Yetki düzenleme
192-
Permission::where('id', $permission_id)->update([
193-
'name' => 'İçerik düzenleme yetkisi',
194-
'slug' => 'edit-content'
195-
]);
196-
# Yetki silme
197-
Permission::destroy($permission_id);
198-
Permission::destroy([1,2,3]); // birden fazla permission id'ler ile silme
202+
});
199203
```

0 commit comments

Comments
 (0)