diff --git a/README.md b/README.md index 6efd7d3..a7d5d60 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.org/php-soft/laravel-users.svg)](https://travis-ci.org/php-soft/laravel-users) > This module is use JWTAuth and ENTRUST libraries -> +> > 1. https://github.com/tymondesigns/jwt-auth (JSON Web Token) > 2. https://github.com/Zizaco/entrust (Role-based Permissions) @@ -41,6 +41,15 @@ Next, also in the `app.php` config file, under the `aliases` array, you may want ] ``` +You need to define namespace to your User model in the `phpsoft.user.php` config file, default with 'App\User'. + +```php +'aliases' => [ + // ... + 'model' => 'App\User', +] +``` + You will want to publish the config using the following command: ```sh @@ -111,7 +120,7 @@ class User extends PhpSoftUser implements AuthenticatableContract, CanResetPassw // ... } -``` +``` Remove middlewares in `app/Http/Kernel.php` @@ -230,14 +239,14 @@ $user->can(['edit-user', 'create-post']); // true ### 3.3 Forgot password -To send mail forgot password, +To send mail forgot password, - You need to add address and name of sender in `config\mail.php` as follows: ```php 'from' => ['address' => 'no-reply@example.com', 'name' => 'System'], ``` -- You need to create email view: +- You need to create email view: Create `password.blade.php` file in folder `resources\views\emails` with contents as follows: ```php @@ -298,7 +307,7 @@ protected $routeMiddleware = [ Usage ```php -Route::group(['middleware'=>'routePermission'], function() { +Route::group(['middleware'=>'routePermission'], function() { Route::post('/blog', function () { // }); @@ -358,7 +367,7 @@ class UserValidate implements Validator { /** * Custom validator - * + * * @return boolean */ public static function boot($request) @@ -373,7 +382,7 @@ class UserValidate implements Validator /** * Declare rules - * + * * @return array */ public static function rules() @@ -386,4 +395,4 @@ class UserValidate implements Validator } } ``` -Here, you will declare fields that you want to validate them in `rules()` function. And You can also custom validator fields that you want by declare them in `boot()` function. +Here, you will declare fields that you want to validate them in `rules()` function. And You can also custom validator fields that you want by declare them in `boot()` function. diff --git a/packages/Users/Controllers/UserController.php b/packages/Users/Controllers/UserController.php index ff60ad9..2a8b35e 100644 --- a/packages/Users/Controllers/UserController.php +++ b/packages/Users/Controllers/UserController.php @@ -2,17 +2,24 @@ namespace PhpSoft\Users\Controllers; -use Input; use Auth; +use Config; +use Input; use JWTAuth; use Validator; -use App\User as AppUser; use Illuminate\Http\Request; use PhpSoft\Users\Models\Role; use PhpSoft\Users\Models\User; class UserController extends Controller { + private $userModel; + + public function __construct() + { + $this->userModel = config('phpsoft.users.model'); + } + /** * Display the specified resource. * @@ -85,7 +92,8 @@ public function store(Request $request) ]), 400); } - $user = AppUser::create($request->all()); + $userModel = $this->userModel; + $user = $userModel::create($request->all()); return response()->json(arrayView('phpsoft.users::user/read', [ 'user' => $user @@ -138,8 +146,10 @@ public function update(Request $request, $id = null) ]), 400); } - // Update profile - $user = $user->update($request->all()); + $userModel = $this->userModel; + + // check user + $user = $id ? $userModel::find($id) : Auth::user(); if (!$user) { return response()->json(null, 500); // @codeCoverageIgnore @@ -157,8 +167,10 @@ public function update(Request $request, $id = null) */ public function destroy($id) { + $userModel = $this->userModel; + // get user by id - $user = AppUser::find($id); + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -181,8 +193,10 @@ public function destroy($id) */ public function show($id) { + $userModel = $this->userModel; + // get user by id - $user = AppUser::find($id); + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -199,7 +213,9 @@ public function show($id) */ public function index(Request $request) { - $users = AppUser::browse([ + $userModel = $this->userModel; + + $users = $userModel::browse([ 'order' => [ Input::get('sort', 'id') => Input::get('direction', 'desc') ], 'limit' => ($limit = (int)Input::get('limit', 25)), 'cursor' => Input::get('cursor'), @@ -220,7 +236,9 @@ public function index(Request $request) */ public function block($id) { - $user = AppUser::find($id); + $userModel = $this->userModel; + + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -245,7 +263,9 @@ public function block($id) */ public function unblock($id) { - $user = AppUser::find($id); + $userModel = $this->userModel; + + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -270,7 +290,9 @@ public function unblock($id) */ public function assignRole($id, Request $request) { - $user = AppUser::find($id); + $userModel = $this->userModel; + + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); diff --git a/packages/Users/Models/User.php b/packages/Users/Models/User.php index fb1a245..ee737a1 100644 --- a/packages/Users/Models/User.php +++ b/packages/Users/Models/User.php @@ -2,7 +2,7 @@ namespace PhpSoft\Users\Models; -use App\User as AppUser; +use Config; use Illuminate\Database\Eloquent\Model; use PhpSoft\Users\Models\Role; @@ -55,9 +55,10 @@ class User extends Model */ public static function create(array $attributes = []) { + $userModel = config('phpsoft.users.model'); $attributes['password'] = bcrypt($attributes['password']); - $user = new AppUser($attributes); + $user = new $userModel($attributes); $user->save(); return $user; @@ -93,7 +94,9 @@ public function update(array $attributes = []) */ public static function browse($options = []) { - $find = new AppUser(); + $userModel = config('phpsoft.users.model'); + + $find = new $userModel; $fillable = $find->fillable; if (!empty($options['filters'])) { diff --git a/packages/Users/Providers/UserServiceProvider.php b/packages/Users/Providers/UserServiceProvider.php index ba05086..4989590 100644 --- a/packages/Users/Providers/UserServiceProvider.php +++ b/packages/Users/Providers/UserServiceProvider.php @@ -24,6 +24,7 @@ public function boot() $this->publishes([ __DIR__ . '/../config/jwt.php' => config_path('jwt.php'), __DIR__ . '/../config/entrust.php' => config_path('entrust.php'), + __DIR__ . '/../config/phpsoft.users.php' => config_path('phpsoft.users.php'), ]); // Register commands @@ -37,6 +38,10 @@ public function boot() */ public function register() { + $this->mergeConfigFrom( + __DIR__ . '/../config/phpsoft.users.php', 'phpsoft.users' + ); + $this->registerCommands(); } diff --git a/packages/Users/config/phpsoft.users.php b/packages/Users/config/phpsoft.users.php new file mode 100644 index 0000000..6a8df50 --- /dev/null +++ b/packages/Users/config/phpsoft.users.php @@ -0,0 +1,17 @@ + 'App\User', + +]; diff --git a/storage/database.sqlite b/storage/database.sqlite index c202000..8a6b730 100644 Binary files a/storage/database.sqlite and b/storage/database.sqlite differ