PHPackages                             erenmustafaozdal/laravel-user-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. erenmustafaozdal/laravel-user-module

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

erenmustafaozdal/laravel-user-module
====================================

laravel 5.1 user, role and auth module package

v0.1.5(9y ago)31491MITPHPPHP &gt;=5.5.9

Since Aug 2Pushed 9y ago1 watchersCompare

[ Source](https://github.com/erenmustafaozdal/laravel-user-module)[ Packagist](https://packagist.org/packages/erenmustafaozdal/laravel-user-module)[ RSS](/packages/erenmustafaozdal-laravel-user-module/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

Laravel User Module
===================

[](#laravel-user-module)

[![Laravel 5.1](https://camo.githubusercontent.com/05076f1468adbd2ff88c746e1d499486fe3755747a047b2f42949a583c4884b2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d352e312d6f72616e67652e7376673f7374796c653d666c61742d737175617265)](https://laravel.com/docs/5.1/)[![Source](https://camo.githubusercontent.com/06177ca0cafc2472a3b130c51f138e4118775bd7096ba4b8ff5ade8586004933/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d6572656e6d7573746166616f7a64616c2f6c61726176656c2d2d757365722d2d6d6f64756c652d626c75652e7376673f7374796c653d666c61742d737175617265)](https://github.com/erenmustafaozdal/laravel-user-module)[![License](https://camo.githubusercontent.com/30597ff9a350144f03bffdd9183e16468e0b3ca1193e1d08591d992622738d55/687474703a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://tldrlegal.com/license/mit-license)

**Laravel User Module**, Laravel 5.1 projelerinde *kullanıcı*, *rol* ve *giriş* işlemlerini kapsayan bir modül paketidir. Bu paket kullanıcı arayüzü **(views)** hariç, arka plandaki bütün işlemleri barındırmaktadır. İstersen görünümleri kapsayan [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketini kullanarak, modüle tam kapsamıyla sahip olabilirsin.

1. [Kurulum](#kurulum)
    1. [Dosyaların Yayınlanması](#kurulum-dosyalarinYayinlanmasi)
    2. [Migration](#kurulum-migration)
2. [Kullanım](#kullanim)
    1. [Ayar Dosyası](#kullanim-ayarDosyasi)
        1. [Genel Ayarlar](#kullanim-ayarDosyasi-genelAyarlar)
        2. [URL Ayarları](#kullanim-ayarDosyasi-urlAyarlari)
        3. [Görünüm Ayarları](#kullanim-ayarDosyasi-gorunumAyarlari)
        4. [Model Ayarları](#kullanim-ayarDosyasi-modelAyarlari)
    2. [Görünüm Tasarlama](#kullanim-gorunumTasarlama)
        1. [Model Kullanımı](#kullanim-gorunumTasarlama-modelKullanimi)
            1. [User](#kullanim-gorunumTasarlama-modelKullanimi-user)
            2. [Role](#kullanim-gorunumTasarlama-modelKullanimi-role)
        2. [Rotalar](#kullanim-gorunumTasarlama-rotalar)
            1. [Giriş - Çıkış - Kayıt Rotaları](#kullanim-gorunumTasarlama-rotalar-auth)
            2. [Kullanıcı Rotaları](#kullanim-gorunumTasarlama-rotalar-user)
            3. [Kullanıcı Rolü Rotaları](#kullanim-gorunumTasarlama-rotalar-role)
        3. [Form Alanları](#kullanim-gorunumTasarlama-formAlanlari)
            1. [Giriş - Çıkış - Kayıt Formları](#kullanim-gorunumTasarlama-formAlanlari-auth)
            2. [Kullanıcı Formları](#kullanim-gorunumTasarlama-formAlanlari-user)
            3. [Kullanıcı Rolü Formları](#kullanim-gorunumTasarlama-formAlanlari-role)
        4. [İşlem İzin Formları](#kullanim-gorunumTasarlama-islemIzinFormlari)
    3. [Onaylamalar](#kullanim-onaylamalar)
    4. [Olaylar](#kullanim-olaylar)
        1. [Giriş - Çıkış - Kayıt Olayları](#kullanim-olaylar-auth)
        2. [Kullanıcı Olayları](#kullanim-olaylar-user)
        3. [Kullanıcı Rolü Olayları](#kullanim-olaylar-role)
3. [Lisans](#lisans)

Kurulum
------------------------------------------

[](#kurulum)

Composer ile yüklemek için aşağıdaki kodu kullanabilirsin.

```
composer require erenmustafaozdal/laravel-user-module
```

Ya da `composer.json` dosyana, aşağıdaki gibi ekleme yapıp, paketleri güncelleyebilirsin.

```
{
    "require": {
        "erenmustafaozdal/laravel-user-module": "~0.1"
    }
}
```

```
$ composer update
```

Bu işlem bittikten sonra, service provider'i projenin `config/app.php` dosyasına eklemelisin.

```
ErenMustafaOzdal\LaravelUserModule\LaravelUserModuleServiceProvider::class,
```

> ❗ Eğer **Laravel Modules Core** paketini kullanacaksan, o paketin service provider dosyasını üstte tanımlamalısın.

##### Dosyaların Yayınlanması

[](#dosyaların-yayınlanması)

**Laravel User Module** paketinin dosyalarını aşağıdaki kodla yayınlamalısın.

```
php artisan vendor:publish --provider="ErenMustafaOzdal\LaravelUserModule\LaravelUserModuleServiceProvider"
```

##### Migration

[](#migration)

Dosyaları yayınladıktan sonra migration işlemi yapmalısın.

> ❗ Migration işleminden önce Laravel'in varsayılan migration dosyalarını silmelisin. Sentinel kendi migration dosyalarını ekleyecek.

> ❗ Sentinel'e ait `...migration_cartalyst_sentinel.php` dosyasında **Laravel User Module**'e özgü bazı değişiklikler yapmalısın. `users` tablosunun sütunlarının belirlendiği satırlarda, `last_name` sütunundan sonra aşağıdaki gibi ekleme yapmalısın.

```
$table->string('last_name')->nullable();        // bu satırdan sonra
$table->boolean('is_active')->default(0);       // bu satırı eklemelisin
$table->boolean('is_super_admin')->default(0);  // bu satırı da eklemelisin
$table->string('photo')->nullable();            // ve arkasından bu satırı
```

Daha sonra migrate işlemini yapabilirsin.

```
php artisan migrate
```

> ❗ Kullanıcının başarılı kayıt işlemi sonrasında tetiklenen olay ile, kullanıcıya aktivasyon e-postası göndermek gibi bazı işlemler için; `ErenMustafaOzdal\LaravelUserModule\Listeners\LaravelUserModuleListener` dinleyicisini `App\Providers\EventServiceProvider` içinde `$subscribe` dizi özelliğine eklemelisin.

```
protected $subscribe = [
    'ErenMustafaOzdal\LaravelUserModule\Listeners\LaravelUserModuleListener',
];
```

`config/laravel-user-module.php` dosyasından aktivasyon e-posta blade dosyasını değiştirebilirsin.

> Aktivasyon epostası blade dosyasına kullanıcı bilgileri (`user`) ve Sentinel Aktivasyon nesnesi gönderilmektedir (`activation`). Sentinel Aktivasyon nesnesinden `$activation->code` şeklinde kodu eposta içindeki aktivasyon bağlantısına ekleyebilirsin.

> ❗ Paketin bağımlılıklarından Sentinel ayar dosyasında (`config/cartalyst.sentinel.php`) *users* ve *roles* model değerlerini güncellemelisin.

```
'users' => [
    'model' => 'App\User',
],
'roles' => [
    'model' => 'App\Role',
],
```

Son olarak `App\User` ve `App\Role` modellerini uygun bir şekilde tanımlamalısın. Bunun için `App\User` modelini `ErenMustafaOzdal\LaravelUserModule\User` modelinden, `App\Role` modelini `ErenMustafaOzdal\LaravelUserModule\Role` modelinden genişletmelisin.

```
namespace App;

use ErenMustafaOzdal\LaravelUserModule\User as EMOUser;

class User extends EMOUser
{
    //
}
```

```
namespace App;

use ErenMustafaOzdal\LaravelUserModule\Role as EMORole;

class Role extends EMORole
{
    //
}
```

Kullanım
--------------------------------------------

[](#kullanım)

Kurulum tamamlandığında; [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketini de dahil ettiysen, `proje.dev/login` adresinden tüm haliyle seni bekliyor olacak.

> ❗ metinler yanlış görünüyorsa, [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketinin İngilizce dil dosyaları hazır olmadığı içindir. Bu sebeple projenin `config/app.php` dosyasında `'locale' => 'tr'` tanımlaması yapmalısın.

> ❗ ilk kullanıcı ile giriş yaptığında hiçbir rotaya erişemeyeceksin. Bunu engellemek için veri tabanında `is_super_admin` sütununu **1** olarak tanımlamalısın. bu şekilde bütün izinlere sahip olarak işlemlere devam edebilirsin.

### Ayar Dosyası

[](#ayar-dosyası)

##### Genel Ayarlar

[](#genel-ayarlar)

Paketin içinde kullanılan genel ayarlar. Ayar dosyası içinde kök alanda bulunan ayarlar.

AyarAçıklamaVarsayılan Değerdate\_formatKullanılacak tarih formatıd.m.Y H:i:suse\_registerKullanıcı kayıt sayfası olacak mı? Eğer bu değer `true` olarak ayarlanırsa; kullanıcların kayıt olması için bir rota tanımlanacaktrue

##### URL Ayarları

[](#url-ayarları)

Tarayıcının adres çubuğunda görünecek adreslerin tanımlandığı ayarlar. Ayar dosyasının `url` alanında bulunan ayarlardır.

> Örneğin: `activate_route` ayarı ile aktivasyon sayfası adresi `account-activate` şeklinde tanımlanmıştır. Bu şekilde adres çubuğunda şuna benzer bir görünüm olacaktır: `www.siteadi.com/account-activate/{id}/{code}`

AyarAçıklamaVarsayılan Değerlogin\_routeGiriş sayfası adresiloginlogout\_routeÇıkış sayfası adresilogoutregister\_routeEğer kayıt sayfası olacaksa, kullanıcıların kayıt olacağı sayfanın adresiregisteractivate\_routeEğer kayıt sayfası olacaksa, kullanıcıların kayıt sonrası aktivasyon adresiaccount-activateforget\_password\_routeŞifre sıfırlama sayfası adresiforget-passwordreset\_password\_routeŞifre sıfırlama e-postası sonrası gelinecek sıfırlama adresireset-passworduserKullanıcı oluşturma, düzenleme vb. sayfalarda kullanılacak adresusersroleKullanıcı rolü oluşturma, düzenleme vb. sayfalarda kullanılacak adresrolesredirect\_routegiriş yapan kullanıcının yönlendirileceği adresin rota adı (`route name`). Ör: dashboardadminadmin\_url\_prefixYönetim panelinin adres çubuğundaki ön adı. Örneğin: `www.siteadi.com/admin/users`admin

##### Görünüm Ayarları

[](#görünüm-ayarları)

Paketin kullanacağı görünümlerin tanımlandığı ayarlardır. Ayar dosyasının `views` alanı altında bulunan ayarlardır. Buradaki değerler varsayılan olarak [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketinin görünümlerine tanımlıdır.

AyarAçıklamaVarsayılan Değerauth.layoutGiriş, kayıt gibi sayfaların şablon görünümülaravel-modules-core::layouts.authauth.loginGiriş sayfası görünümülaravel-modules-core::auth.loginauth.registerKayıt sayfası görünümülaravel-modules-core::auth.registerauth.forget\_passwordŞifremi unuttum sayfası görünümülaravel-modules-core::auth.forget\_passwordauth.reset\_passwordŞifre sıfırlama sayfası görünümülaravel-modules-core::auth.reset\_passworduser.layoutKullanıcı sayfaları şablon görünümülaravel-modules-core::layouts.adminuser.indexKullanıcıların listelendiği sayfanın görünümülaravel-modules-core::user.indexuser.createKullanıcı ekleme sayfasının görünümülaravel-modules-core::user.createuser.showKullanıcı bilgilerinin olduğu sayfanın görünümülaravel-modules-core::user.showuser.editKullanıcı bilgilerinin düzenlendiği sayfanın görünümülaravel-modules-core::user.editrole.layoutKullanıcı rolü sayfaları şablon görünümülaravel-modules-core::layouts.adminrole.indexKullanıcı rollerinin listelendiği sayfanın görünümülaravel-modules-core::role.indexrole.createKullanıcı rolü ekleme sayfasının görünümülaravel-modules-core::role.createrole.showKullanıcı rolü bilgilerinin olduğu sayfanın görünümülaravel-modules-core::role.showrole.editKullanıcı rolü bilgilerinin düzenlendiği sayfanın görünümülaravel-modules-core::role.editemail.activationAktivasyon e-postası görünümülaravel-modules-core::emails.activationemail.forget\_passwordŞifremi unuttum e-postası görünümülaravel-modules-core::emails.forget\_password

##### Model Ayarları

[](#model-ayarları)

Paket içinde kullanılan modeller ile ilgili bazı ayarlamalar. Şu an için sadece `User` modeli ayarları mevcut. Ve bu ayar da; ayar dosyasının `user` alanında bulunmaktadır.

AyarAçıklamaVarsayılan Değeravatar\_pathVarsayılan avatar fotoğraflarının farklı boyutlarda bulunduğu dizini tanımlar. Burada dikkat edilmesi gereken iki nokta vardır: Birincisi, bu dizin içindeki fotoğrafların isimleri aşağıda tanımlanacak `thumbnails` isimleri ile benzer olmalıdır. İkincisi, dosyalar `.jpg` formatında olmalıdır. Varsayılan değer **Laravel Modules Core** paketine tanımlıdır.vendor/laravel-modules-core/assets/global/img/avataruploads.columnVeri tabanındaki fotoğraf sütunu adıphotouploads.pathFotoğrafların yükleneceği dosya yoluuploads/useruploads.thumbnailsFotoğrafın orjinal hali yukarıdaki dosya yolundan sonra `{id}/original` dizini içine kayıt edilir. Burada ise istenilen adette küçük fotoğraf kayıt edilmesi için tanımlama yapılmalıdır. Ayar formatı dosya içinde anlatıldığı için burada sadece bir örnek verilecektir.`'smallest' => [ 'width' => 35, 'height' => 35]`

### Görünüm Tasarlama

[](#görünüm-tasarlama)

Paket [Laravel Modules Core](https://github.com/erenmustafaozdal/laravel-modules-core) paketiyle beraber direkt kullanıma hazırdır. Ancak istersen kendine özel görünümlerde tasarlayabilirsin. Bu bölüm özel tasarımlar için bir rehberdir.

##### Model Kullanımı

[](#model-kullanımı)

Görünümler içinde `User` ve `Role` modellerinin özellik ve metot kullanımı hakkında bilgileri kapsamaktadır. Bu metotlar ve özellikler `App\User` ve `App\Role` içinde üzerine yazılarak değiştirilebilir.

###### User

[](#user)

\####### Genel Özellikler

1. **protected $table =** 'users'
2. **protected $fillable =** \['first\_name', 'last\_name', 'email', 'password', 'is\_active', 'photo','permissions'\]
3. **protected $hidden =** \['password', 'remember\_token'\]

\####### $user-&gt;getPhoto() Kullanıcı fotoğrafını HTLM `img` etiketi ile veya sadece url olarak geri döndürür. Eğer fotoğraf yoksa, varsayılan fotoğrafı geri döndürür

ParametreAçıklamaTürVarsayılan Değer$attributesHTML `img` etiketi içinde yer alacak özellikler. Örneğin: *class =&gt; 'img-responsive'*array\[\]$typeİstenen resmin türü nedir? `original` değeri fotoğrafın orjinal halini döndürür. Bunun dışında da; ayar dosyasında *thumbnails* alanında belirttiğin isimlerden biri ile çağırabilirsinstring'original'$onlyUrlResim HTML olarak mı, url olarak mı isteniyor? `true` değeri sadece url'yi geri döndürürbooleanfalse\####### $user-&gt;first\_name `string`Baş harfi büyük şekilde kullanıcı ilk adı

\####### $user-&gt;last\_name `string`Bütün harfler büyük şekilde kullanıcı soyadı

\####### $user-&gt;fullname `string`Kullanıcı ilk ve soyadı birleşimi

\####### $user-&gt;is\_active `boolean`Kullanıcının aktif olup olmadığını döndürür

\####### $user-&gt;last\_login `string`Kullanıcının son giriş yaptığı tarihi ayar dosyasındaki tanıma göre döndürür

\####### $user-&gt;last\_login\_for\_humans `string`Kullanıcının son giriş yaptığı tarihi okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $user-&gt;last\_login\_table `array`Kullanıcının son giriş yaptığı tarihi `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

\####### $user-&gt;permissions `array`Kullanıcı işlem izinlerini dizi şeklinde döndürür

\####### $user-&gt;permission\_collect `Collection`Kullanıcı işlem izinlerini *Collection objesi* şeklinde döndürür

\####### $user-&gt;created\_at `string`Kullanıcının kayıt tarihini ayar dosyasındaki tanıma göre döndürür

\####### $user-&gt;created\_at\_for\_humans `string`Kullanıcının kayıt tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $user-&gt;created\_at\_table `array`Kullanıcının kayıt tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

\####### $user-&gt;updated\_at `string`Kullanıcının güncellenme tarihini ayar dosyasındaki tanıma göre döndürür

\####### $user-&gt;updated\_at\_for\_humans `string`Kullanıcının güncellenme tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $user-&gt;updated\_at\_table `array`Kullanıcının güncellenme tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

###### Role

[](#role)

\####### Genel Özellikler

1. **protected $table =** 'roles'
2. **protected $fillable =** \['name', 'slug', 'permissions'\]

\####### $role-&gt;name\_uc\_first `string`Baş harfi büyük şekilde kullanıcı rolü adı

\####### $role-&gt;slug `string`Kullanıcı rolü url formatındaki hali

\####### $role-&gt;permissions `array`Kullanıcı rolü işlem izinlerini dizi şeklinde döndürür

\####### $role-&gt;permission\_collect `Collection`Kullanıcı rolü işlem izinlerini *Collection objesi* şeklinde döndürür

\####### $role-&gt;created\_at `string`Kullanıcı rolünün kayıt tarihini ayar dosyasındaki tanıma göre döndürür

\####### $role-&gt;created\_at\_for\_humans `string`Kullanıcı rolünün kayıt tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $role-&gt;created\_at\_table `array`Kullanıcı rolünün kayıt tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

\####### $role-&gt;updated\_at `string`Kullanıcı rolünün güncellenme tarihini ayar dosyasındaki tanıma göre döndürür

\####### $role-&gt;updated\_at\_for\_humans `string`Kullanıcı rolünün güncellenme tarihini okunaklı veri şeklinde döndürür. Örneğin: *1 hafta önce*

\####### $role-&gt;updated\_at\_table `array`Kullanıcı rolünün güncellenme tarihini `display`(last\_login\_for\_humans) ve `timestamp` şeklinde tutulan bir dizi şeklinde döndürür. Datatable'da kullanılması amacıyla oluşturulmuştur

##### Rotalar

[](#rotalar)

**Laravel User Module** paketi *CRUD* işlemleri için sahip olduğu rotaların dışında, `ajax` ile işlem yapabileceğin birçok rotaya da sahiptir. Görünümlerini tasarlarken bunları kullanabilirsin.

> Rotalarda kullanılabilecek form elemanları bir sonraki bölümde anlatılacaktır.

###### Giriş - Çıkış - Kayıt Rotaları

[](#giriş---çıkış---kayıt-rotaları)

Giriş, çıkış, kayıt, şifre hatırlatma vb. işlemler için kullanılan rotalardır.

Rota AdıAçıklamaTürgetLoginGiriş sayfasıGETpostLoginGiriş sayfasından form verilerinin gönderildiği sayfaPOSTgetLogoutÇıkış sayfasıGETgetRegisterKayıt sayfasıGETpostRegisterKayıt sayfasından form verilerinin gönderildiği sayfaPOSTaccountActivateKayıt sonrası hesabın aktifleştirileceği rota. Bu rotada kullanıcı `id`si ve Sentinel Activation tarafından üretilen `code` kullanılıyor. Paket kayıt sonrası bu adresi direkt kullanıcıya e-posta olarak gönderiyor.GETgetForgetPasswordŞifremi unuttum sayfasıGETpostForgetPasswordŞifremi unuttum sayfasından form verilerinin gönderildiği sayfaPOSTgetResetPasswordŞifre sıfırlama sayfası. Şifremi unuttum işlemi sonrası paket kullanıcıya *şifre sıfırlama* e-postası gönderir. Bu bağlantı burada kullanıcıya ulaşmış olurGETpostResetPasswordŞifre sıfırlama sayfasından form verilerinin gönderildiği sayfaPOST

###### Kullanıcı Rotaları

[](#kullanıcı-rotaları)

Başta kullanıcı CRUD işlemleri olmak üzere, bir kısım *ajax* işlemini de kapsayan rotalar.

Rota AdıAçıklamaTüradmin.user.indexKullanıcıların listelendiği sayfaGETadmin.user.createYeni kullanıcı eklendiği sayfaGETadmin.user.storeYeni kullanıcı eklendiği sayfadan form verilerinin gönderildiği sayfaPOSTadmin.user.showKullanıcı bilgilerinin gösterildiği sayfa. Bu sayfayı oluşturulacak görünümlere `$user` değişkeni aktarılır.GETadmin.user.editKullanıcı bilgilerinin düzenlendiği sayfa. Bu sayfayı oluşturulacak görünümlere `$user` değişkeni aktarılır.GETadmin.user.updateKullanıcı bilgilerinin düzenlendiği sayfadan form verilerinin gönderildiği sayfaPUT-PATCHadmin.user.destroyKullanıcının silindiği sayfaDELETEadmin.user.changePasswordKullanıcı şifresininin güncellenmesi için form verilerinin gönderildiği sayfaPOSTadmin.user.permissionKullanıcı işlem izinleri verilerinin gönderileceği sayfa. Kullanıcı izinleri formunu oluşturman için aşağıda bir bahis daha geçecek.POSTapi.user.indexBu rotada ajax ile Datatable türü veriler çekilir. Gelen sütunlar şunlardır: `id`, `photo`, `fullaname` *(first\_name ve last\_name sütunlarından oluşturulur)*, `created_at`, `status` *(is\_active sütunundan oluşturulur)*, `urls` *(tablonun eylemler sütununda kullanılmak üzere oluşturulmuş bazı adreslerdir.)*. Bütün bunlar dışında `action=filter` verisi ile birlikte; *id*, *first\_name*, *last\_name*, *status*, *created\_at\_from* ve *created\_at\_to* verileri gönderilerek; filtrelenmiş veriler elde edebilirsinGETapi.user.storeYeni kullanıcı eklenmesi için verilerin gönderildiği sayfa. Fotoğraf dışında bütün veriler gönderilebilirPOSTapi.user.updateKullanıcı bilgilerinin düzenlenmesi için verilerin gönderildiği sayfa. Fotoğraf dışında bütün veriler gönderilebilir.PUT-PATCHapi.user.destroyKullanıcının silinmesi için verilerin gönderildiği sayfaDELETEapi.user.groupKullanıcılar üzerinde grup işlemleri yapmak için kullanılan bir rota. Aktifleştirme, aktifliği kaldırma ve silme işlemlerini destekliyor. `action=activate` gibi bir veri ile birlikte, dizi içinde işlem yapılacak kullanıcı id'leri gönderilir. Aşağıda veri detayları açıklanmıştır.POSTapi.user.detailKullanıcı id'si iliştirilmiş rota ile kullanıcı *id*, *email*, *last\_login*, *updated\_at*, *roles* (virgül ile ayrılmış metin türünde) bilgileri Datatable formatında gönderilirGETapi.user.fastEditHızlı bir şekilde kullanıcı bilgisini düzenlemek için; bilgilerin çekildiği rotadır. Rotaya kullanıcı id'si iliştirilir ve kullanıcı bilgilerinin tamamı çekilirPOSTapi.user.activateId'si iliştirilen kullanıcının hesabını aktifleştirildiği rotaPOSTapi.user.notActivateId'si iliştirilen kullanıcının hesabınının aktifliğinin kaldırıldığı rotaPOSTapi.user.avatarPhotoKullanıcının fotoğrafının eklendiği rota. Eski fotoğrafı siler ve yeni fotoğrafı ayar dosyasına göre eklerPOSTapi.user.destroyAvatarId'si iliştirilen kullanıcının fotoğrafını siler ve varsayılan fotoğrafın tekrar kullanılmasını sağlarPOST

###### Kullanıcı Rolü Rotaları

[](#kullanıcı-rolü-rotaları)

Başta kullanıcı rolü CRUD işlemleri olmak üzere, bir kısım *ajax* işlemini de kapsayan rotalar.

Rota AdıAçıklamaTüradmin.role.indexKullanıcı rollerinin listelendiği sayfaGETadmin.role.createYeni kullanıcı rolü eklendiği sayfaGETadmin.role.storeYeni kullanıcı rolü eklendiği sayfadan form verilerinin gönderildiği sayfaPOSTadmin.role.showKullanıcı rolü bilgilerinin gösterildiği sayfa. Bu sayfayı oluşturulacak görünümlere `$role` değişkeni aktarılır.GETadmin.role.editKullanıcı rolü bilgilerinin düzenlendiği sayfa. Bu sayfayı oluşturulacak görünümlere `$role` değişkeni aktarılır.GETadmin.role.updateKullanıcı rolü bilgilerinin düzenlendiği sayfadan form verilerinin gönderildiği sayfaPUT-PATCHadmin.role.destroyKullanıcı rolünün silindiği sayfaDELETEapi.role.indexBu rotada ajax ile Datatable türü veriler çekilir. Gelen sütunlar şunlardır: `id`, `name`, `slug`, `created_at`, `urls` *(tablonun eylemler sütununda kullanılmak üzere oluşturulmuş bazı adreslerdir.)*. Bütün bunlar dışında `action=filter` verisi ile birlikte; *id*, *name*, *slug*, *created\_at\_from* ve *created\_at\_to* verileri gönderilerek; filtrelenmiş veriler elde edebilirsinGETapi.role.storeYeni kullanıcı rolü eklenmesi için verilerin gönderildiği sayfaPOSTapi.role.updateKullanıcı rolü bilgilerinin düzenlenmesi için verilerin gönderildiği sayfaPUT-PATCHapi.role.destroyKullanıcı rolünün silinmesi için verilerin gönderildiği sayfaDELETEapi.role.modelsKullanıcı rollerinin isme veya url tanımlamasına göre filtrelenip döndürüldüğü rotaPOSTapi.role.groupKullanıcı rolleri üzerinde grup işlemleri yapmak için kullanılan bir rota. Silme işlemini destekliyor. `action=destroy` şeklinde bir veri ile birlikte, dizi içinde işlem yapılacak kullanıcı id'leri gönderilir. Aşağıda veri detayları açıklanmıştır.POSTapi.role.detailKullanıcı rolü id'si iliştirilmiş rota ile kullanıcı rolü *id*, *name*, *slug*, *created\_at*, *updated\_at* bilgileri Datatable formatında gönderilirGETapi.role.fastEditHızlı bir şekilde kullanıcı rolü bilgisini düzenlemek için; bilgilerin çekildiği rotadır. Rotaya kullanıcı rolü id'si iliştirilir ve kullanıcı rolü bilgilerinin tamamı çekilirPOST

##### Form Alanları

[](#form-alanları)

İşlemler sırasında görünümlerinde kullanacağın form elemanları veri tabanı tablolarındaki sütun isimleriyle aynı olmalıdır. Aşağıda her işlem için gereken eleman listesi verilmiştir.

❗ Aşağıda belirtilen form isimleri kullanılması zorunlu olup, sırası değişebilir.

> `lang/.../validation.php` dosyanda bu form isimlerinin metin değerlerini belirtmeyi unutma! Ayrıca her dil için validation dosyası oluşturmalısın.

###### Giriş - Çıkış - Kayıt Formları

[](#giriş---çıkış---kayıt-formları)

- `register` işlemi form elemanları
    - first\_name
    - last\_name
    - email
    - password
    - password\_confirmation
    - terms

**RegisterRequest**

```
public function rules()
{
    return [
        'first_name'    => 'required|max:255',
        'last_name'     => 'required|max:255',
        'email'         => 'required|unique:users|email|max:255',
        'password'      => 'required|confirmed|min:6|max:255',
        'terms'         => 'required|in:1|accepted'
    ];
}
```

- `login` işlemi form elemanları
    - email
    - password
    - remember

**LoginRequest**

```
public function rules()
{
    return [
        'email'         => 'required|email|max:255',
        'password'      => 'required|min:6|max:255',
    ];
}
```

- `forgetPassword` işlemi form elemanları
    - email

**ForgetPasswordRequest**

```
public function rules()
{
    return [
        'email'         => 'required|email|max:255',
    ];
}
```

- `resetPassword` işlemi form elemanları
    - email
    - password
    - password\_confirmation

**ResetPasswordRequest**

```
public function rules()
{
    return [
        'email'         => 'required|email|max:255',
        'password'      => 'required|confirmed|min:6|max:255',
    ];
}
```

###### Kullanıcı Formları

[](#kullanıcı-formları)

- `store` işlemi form elemanları
    - first\_name
    - last\_name
    - email
    - password
    - password\_confirmation
    - photo
    - x (fotoğraf kırpılacaksa; kırpılacak halin sol üst köşe konumu x değeri)
    - y (fotoğraf kırpılacaksa; kırpılacak halin sol üst köşe konumu y değeri)
    - width (fotoğraf kırpılacaksa; kırpılacak halin width değeri)
    - height (fotoğraf kırpılacaksa; kırpılacak halin height değeri)
    - permissions

**StoreRequest**

```
public function rules()
{
    return [
        'first_name'    => 'required|max:255',
        'last_name'     => 'required|max:255',
        'email'         => 'required|unique:users|email|max:255',
        'password'      => 'required|confirmed|min:6|max:255',
        'photo'         => 'max:5120|image|mimes:jpeg,jpg,png',
        'x'             => 'integer',
        'y'             => 'integer',
        'width'         => 'integer',
        'height'        => 'integer',
        'permissions'   => 'array',
    ];
}
```

- `update` işlemi form elemanları
    - first\_name
    - last\_name
    - email
    - password
    - password\_confirmation
    - photo
    - x (fotoğraf kırpılacaksa; kırpılacak halin sol üst köşe konumu x değeri)
    - y (fotoğraf kırpılacaksa; kırpılacak halin sol üst köşe konumu y değeri)
    - width (fotoğraf kırpılacaksa; kırpılacak halin width değeri)
    - height (fotoğraf kırpılacaksa; kırpılacak halin height değeri)
    - permissions

**UpdateRequest**

```
public function rules()
{
    return [
        'first_name'    => 'required|max:255',
        'last_name'     => 'required|max:255',
        'slug'          => 'email|max:255|unique:users,slug,'.$this->segment(3),
        'password'      => 'confirmed|min:6|max:255',
        'photo'         => 'max:5120|image|mimes:jpeg,jpg,png',
        'x'             => 'integer',
        'y'             => 'integer',
        'width'         => 'integer',
        'height'        => 'integer',
        'permissions'   => 'array',
    ];
}
```

- `changePassword` işlemi form elemanları
    - password
    - password\_confirmation

**PasswordRequest**

```
public function rules()
{
    return [
        'password'      => 'required|confirmed|min:6|max:255'
    ];
}
```

- `permission` işlemi form elemanları
    - permissions

**PermissionRequest**

```
public function rules()
{
    return [
        'permissions'      => 'array'
    ];
}
```

- Api `index` filtreleme işlemi verileri

    - action=filter
    - id
    - first\_name
    - last\_name
    - status (is\_active sütunu filtrelemesi için; 1 veya 0)
    - created\_at\_from
    - created\_at\_to
- Api `store` işlemi verileri, yukarıdaki *store* işlemi ile aynıdır. Sadece fotoğraf verileri kullanılmaz
- Api `update` işlemi verileri, yukarıdaki *update* işlemi ile aynıdır. Sadece fotoğraf verileri kullanılmaz
- Api `group` işlemi verileri

    - action=activate|not\_activate|destroy
    - id (array şeklinde model id'leri)
- Api `avatarPhoto` işlemi verileri,

    - photo
    - x (fotoğraf kırpılacaksa; kırpılacak halin sol üst köşe konumu x değeri)
    - y (fotoğraf kırpılacaksa; kırpılacak halin sol üst köşe konumu y değeri)
    - width (fotoğraf kırpılacaksa; kırpılacak halin width değeri)
    - height (fotoğraf kırpılacaksa; kırpılacak halin height değeri)

**PhotoRequest**

```
public function rules()
{
    return [
        'photo'     => 'required|max:5120|image|mimes:jpeg,jpg,png',
        'x'         => 'integer',
        'y'         => 'integer',
        'width'     => 'integer',
        'height'    => 'integer',
    ];
}
```

###### Kullanıcı Rolü Formları

[](#kullanıcı-rolü-formları)

- `store` işlemi form elemanları
    - name
    - slug
    - permissions

**StoreRequest**

```
public function rules()
{
   return [
        'name'          => 'required|max:255',
        'slug'          => 'alpha_dash|max:255|unique:roles',
        'permissions'   => 'array',
    ];
}
```

- `update` işlemi form elemanları
    - name
    - slug
    - permissions

**UpdateRequest**

```
public function rules()
{
    return [
        'name'          => 'max:255',
        'slug'          => 'alpha_dash|max:255|unique:roles,slug,'.$this->segment(3),
        'permissions'   => 'array',
    ];
}
```

- Api `index` filtreleme işlemi verileri

    - action=filter
    - id
    - name
    - slug
    - created\_at\_from
    - created\_at\_to
- Api `store` işlemi verileri, yukarıdaki *store* işlemi ile aynıdır
- Api `update` işlemi verileri, yukarıdaki *update* işlemi ile aynıdır
- Api `group` işlemi verileri

    - action=destroy
    - id (array şeklinde model id'leri)
- Api `models` işlemi verileri

    - query (metin şeklinde gönderilir ve `name`, `slug` alanlarında `like` yöntemi ile filtreleme yapar)

##### İşlem İzin Formları

[](#i̇şlem-i̇zin-formları)

Hem kullanıcı hem de rol işlem izinleri formu oluşturmak çok kolaydır. **Laravel User Module** bu işlem için `ErenMustafaOzdal\LaravelUserModule\Services\PermissionService` sınıfını kullanmaktadır. Bu sınıf `admin` ve `api` rota adı başlangıcına sahip tüm tanımlı rotaları alır ve `Collection` türünde döndürür. Bu şekilde izinleri *checkbox* ile foreach kullanarak listeleyebilirsin. Örnek kullanım için öncelikle formu oluşturacağın blade dosyasına bu sınıfı enjekte et, daha sonra da listeleme yap.

```
@inject('permission', 'ErenMustafaOzdal\LaravelUserModule\Services\PermissionService')

@foreach($permission->groupByController() as $namespace => $routes)

        {!! $route['route'] !!}
        {!! Form::checkbox( "permissions[{$route['route']}]", true, isset($permissions[$route['route']]) ) !!}

@endforeach

```

###### $permission-&gt;getCollection()

[](#permission-getcollection)

`Illuminate\Routing\RouteCollection` türünden bir liste döndürür

###### $permission-&gt;getNames()

[](#permission-getnames)

`Illuminate\Support\Collection` türünden bir liste döndürür. Bu listenin `all` anahtarında bütün rotalar yer alır. `admin` ve `api` anahtarlarında ise ilgili rota listeleri yer alır.

###### $permission-&gt;getSpecificNames($prefix)

[](#permission-getspecificnamesprefix)

`Illuminate\Support\Collection` türünden bir liste istenen ön ada sahip rota ismi listesi döndürür. Örneğin: *api*

###### $permission-&gt;getNameParts()

[](#permission-getnameparts)

`Illuminate\Support\Collection` türünden bir liste döndürür. `$permission->getNames()` metodundan tek farkı `all` anahtarı olmayışıdır.

###### $permission-&gt;getAllNames()

[](#permission-getallnames)

`Illuminate\Support\Collection` türünden bir liste döndürür. Sadece `all` anahtarındaki listeyi barındırır.

###### $permission-&gt;groupByController()

[](#permission-groupbycontroller)

`Illuminate\Support\Collection` türünden *Controller* türüne göre gruplandırılmış şekilde bütün rotaları döndürür

###### $permission-&gt;permissionCount()

[](#permission-permissioncount)

İşlem izin sayısını, yani rota ismi sayısını döndürür

###### $permission-&gt;permissionRate($count)

[](#permission-permissionratecount)

Metoda gönderilen kullanıcı veya kullanıcı rolü izinli işlem sayısı sonucunda; yüzde kaç yetkiye sahip olduğunu döndürür. Döndürdüğü değer türü: *integer*

### Onaylamalar

[](#onaylamalar)

**Laravel User Module** paketi yapılan her form isteği için onaylama kurallarını belirlemiştir. Bu tür form istek onaylama kuralları için yapman gereken bir şey yoktur. Yukarıda `Request` sınıflarının `rules` metotlarında açıklamaları yapılmıştır.

### Olaylar

[](#olaylar)

Paket içindeki hemen hemen tüm işlemler belli bir olayı tetikler. Sen kendi listener dosyanda bu olayları dinleyebilir ve tetiklendiğinde istediğin işlemleri kolay bir şekilde yapabilirsin.

##### Giriş - Çıkış - Kayıt Olayları

[](#giriş---çıkış---kayıt-olayları)

Olayİsim UzayıOlay VerisiAçıklamaRegisterSuccess`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelBaşarılı kayıt olduğunda tetiklenirRegisterFail`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Kayıt formu verileri *(Array)*Kayıt başarısız olduğunda tetiklenirLoginSuccess`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelBaşarılı giriş olduğunda tetiklenirLoginFail`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Giriş formu verileri *(Array)*Giriş başarısız olduğunda tetiklenirLogout`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelÇıkış yapıldığında tetiklenirActivateSuccess`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelBaşarılı aktivasyon işleminde tetiklenirActivateRemove`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelBaşarılı aktifliği kaldırma işleminde tetiklenirActivateFail`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Aktivasyon bağlantı bilgileri *(id,code)*Aktivasyon işlemi başarısız olduğunda tetiklenirPasswordResetMailSend`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelŞifre sıfırlama e-postası gönderildiğinde tetiklenirForgetPasswordFail`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Şifremi unuttum formu verileri *(Array)*Şifremi unuttum formundan gelen e-posta adresi ile bir kullanıcı eşleşmediğinde tetiklenirResetPasswordSuccess`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelBaşarılı şifre sıfırlama işleminde tetiklenirPasswordResetUserNotFound`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Şifre sıfırlama formu verileri (token dahil) *(Array)*Şifre sıfırlama işlemi sırasında gönderilen e-posta adresi ile bağlantılı bir hesap bulunamadığında tetiklenirResetPassowrdIncorrectCode`ErenMustafaOzdal\LaravelUserModule\Events\Auth`User ModelŞifre sıfırlama bağlantısında bulunan kod yanlış olduğunda tetiklenirSentinelNotActivated`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Sentinel NotActivatedExceptionGiriş işlemi yapmak isteyen kullanıcı aktif bir kullanıcı değilse tetiklenirSentinelThrottling`ErenMustafaOzdal\LaravelUserModule\Events\Auth`Sentinel ThrottlingExceptionÜst üste yanlış hatalı giriş yapıldığında Sentinel tarfında fırlatılan hata olduğunda tetiklenir

##### Kullancı Olayları

[](#kullancı-olayları)

Olayİsim UzayıOlay VerisiAçıklamaStoreSuccess`ErenMustafaOzdal\LaravelUserModule\Events\User`User ModelEkleme işlemi başarılı olduğunda tetiklenirStoreFail`ErenMustafaOzdal\LaravelUserModule\Events\User`Form verileri *(Array)*Ekleme işlemi başarısız olduğunda tetiklenirUpdateSuccess`ErenMustafaOzdal\LaravelUserModule\Events\User`User ModelDüzenleme işlemi başarılı olduğunda tetiklenirUpdateFail`ErenMustafaOzdal\LaravelUserModule\Events\User`User ModelDüzenleme işlemi başarısız olduğunda tetiklenirDestroySuccess`ErenMustafaOzdal\LaravelUserModule\Events\User`User ModelSilme işlemi başarılı olduğunda tetiklenirDestroyFail`ErenMustafaOzdal\LaravelUserModule\Events\User`User ModelSilme işlemi başarısız olduğunda tetiklenir

##### Kullancı Rolü Olayları

[](#kullancı-rolü-olayları)

Olayİsim UzayıOlay VerisiAçıklamaStoreSuccess`ErenMustafaOzdal\LaravelUserModule\Events\Role`Role ModelEkleme işlemi başarılı olduğunda tetiklenirStoreFail`ErenMustafaOzdal\LaravelUserModule\Events\Role`Form verileri *(Array)*Ekleme işlemi başarısız olduğunda tetiklenirUpdateSuccess`ErenMustafaOzdal\LaravelUserModule\Events\Role`Role ModelDüzenleme işlemi başarılı olduğunda tetiklenirUpdateFail`ErenMustafaOzdal\LaravelUserModule\Events\Role`Role ModelDüzenleme işlemi başarısız olduğunda tetiklenirDestroySuccess`ErenMustafaOzdal\LaravelUserModule\Events\Role`Role ModelSilme işlemi başarılı olduğunda tetiklenirDestroyFail`ErenMustafaOzdal\LaravelUserModule\Events\Role`Role ModelSilme işlemi başarısız olduğunda tetiklenirLisans
----------------------------------------

[](#lisans)

MIT

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Total

3

Last Release

3549d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d36e0e358d3746dfa0fe4158fd922ba2efd3e8471e01f1e1ea2042f36878856c?d=identicon)[erenmustafaozdal](/maintainers/erenmustafaozdal)

---

Top Contributors

[![erenmustafaozdal](https://avatars.githubusercontent.com/u/4313376?v=4)](https://github.com/erenmustafaozdal "erenmustafaozdal (150 commits)")

### Embed Badge

![Health badge](/badges/erenmustafaozdal-laravel-user-module/health.svg)

```
[![Health](https://phpackages.com/badges/erenmustafaozdal-laravel-user-module/health.svg)](https://phpackages.com/packages/erenmustafaozdal-laravel-user-module)
```

###  Alternatives

[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)[olssonm/l5-very-basic-auth

Laravel stateless HTTP basic auth without the need for a database

1662.5M1](/packages/olssonm-l5-very-basic-auth)[stechstudio/laravel-jwt

Helper package that makes it easy to generate, consume, and protect routes with JWT tokens in Laravel

126117.6k](/packages/stechstudio-laravel-jwt)[scaler-tech/laravel-saml2

SAML2 Service Provider integration for Laravel applications, based on OneLogin toolkit

2737.5k](/packages/scaler-tech-laravel-saml2)[truckersmp/steam-socialite

Laravel Socialite provider for Steam OpenID.

1516.7k](/packages/truckersmp-steam-socialite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
