From 4b309901fc280628caf4ac837a474d2fc646e3b7 Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Mon, 16 Nov 2015 14:00:02 +0700 Subject: [PATCH 1/4] Create config file for package User #86 --- README.md | 25 +++++++---- packages/Users/Controllers/UserController.php | 43 ++++++++++++++----- packages/Users/Models/User.php | 9 ++-- .../Users/Providers/UserServiceProvider.php | 1 + 4 files changed, 57 insertions(+), 21 deletions(-) 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 d3483a1..1c9cd13 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 $className; + + public function __construct() + { + $this->className = Config::get('phpsoft.user.model'); + } + /** * Display the specified resource. * @@ -58,7 +65,9 @@ public function store(Request $request) ]), 400); } - $user = AppUser::create($request->all()); + $className = $this->className; + + $user = $className::create($request->all()); return response()->json(arrayView('phpsoft.users::user/read', [ 'user' => $user @@ -97,8 +106,10 @@ public function update(Request $request, $id = null) ]), 400); } + $className = $this->className; + // check user - $user = $id ? AppUser::find($id) : Auth::user(); + $user = $id ? $className::find($id) : Auth::user(); // Update profile if (!$user) { @@ -119,8 +130,10 @@ public function update(Request $request, $id = null) */ public function destroy($id) { + $className = $this->className; + // get user by id - $user = AppUser::find($id); + $user = $className::find($id); if (!$user) { return response()->json(null, 404); @@ -143,8 +156,10 @@ public function destroy($id) */ public function show($id) { + $className = $this->className; + // get user by id - $user = AppUser::find($id); + $user = $className::find($id); if (!$user) { return response()->json(null, 404); @@ -161,7 +176,9 @@ public function show($id) */ public function index(Request $request) { - $users = AppUser::browse([ + $className = $this->className; + + $users = $className::browse([ 'order' => [ Input::get('sort', 'id') => Input::get('direction', 'desc') ], 'limit' => ($limit = (int)Input::get('limit', 25)), 'cursor' => Input::get('cursor'), @@ -182,7 +199,9 @@ public function index(Request $request) */ public function block($id) { - $user = AppUser::find($id); + $className = $this->className; + + $user = $className::find($id); if (!$user) { return response()->json(null, 404); @@ -207,7 +226,9 @@ public function block($id) */ public function unblock($id) { - $user = AppUser::find($id); + $className = $this->className; + + $user = $className::find($id); if (!$user) { return response()->json(null, 404); @@ -232,7 +253,9 @@ public function unblock($id) */ public function assignRole($id, Request $request) { - $user = AppUser::find($id); + $className = $this->className; + + $user = $className::find($id); if (!$user) { return response()->json(null, 404); diff --git a/packages/Users/Models/User.php b/packages/Users/Models/User.php index 994329f..08dab9e 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 = []) { + $className = Config::get('phpsoft.user.model'); $attributes['password'] = bcrypt($attributes['password']); - $user = new AppUser($attributes); + $user = new $className($attributes); $user->save(); return $user; @@ -98,7 +99,9 @@ public function changePassword($newPassword) */ public static function browse($options = []) { - $find = new AppUser(); + $className = Config::get('phpsoft.user.model'); + + $find = new $className; $fillable = $find->fillable; if (!empty($options['filters'])) { diff --git a/packages/Users/Providers/UserServiceProvider.php b/packages/Users/Providers/UserServiceProvider.php index ba05086..2287f04 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.user.php' => config_path('phpsoft.user.php'), ]); // Register commands From a36ccd7b2bd4d7ad49c87eaef83bdeef02aaa6ff Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Mon, 16 Nov 2015 14:00:33 +0700 Subject: [PATCH 2/4] Add file config/phpsoft.user.php #86 --- config/phpsoft.user.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 config/phpsoft.user.php diff --git a/config/phpsoft.user.php b/config/phpsoft.user.php new file mode 100644 index 0000000..6a8df50 --- /dev/null +++ b/config/phpsoft.user.php @@ -0,0 +1,17 @@ + 'App\User', + +]; From e77a2bb54901a04be754e2fdda7a5374d937074a Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Mon, 16 Nov 2015 15:13:45 +0700 Subject: [PATCH 3/4] Change variable's name from $className to $userModel #86 --- packages/Users/Controllers/UserController.php | 36 +++++++++---------- packages/Users/Models/User.php | 8 ++--- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/Users/Controllers/UserController.php b/packages/Users/Controllers/UserController.php index 1c9cd13..f8cd381 100644 --- a/packages/Users/Controllers/UserController.php +++ b/packages/Users/Controllers/UserController.php @@ -13,11 +13,11 @@ class UserController extends Controller { - private $className; + private $userModel; public function __construct() { - $this->className = Config::get('phpsoft.user.model'); + $this->userModel = config('phpsoft.user.model'); } /** @@ -65,9 +65,9 @@ public function store(Request $request) ]), 400); } - $className = $this->className; + $userModel = $this->userModel; - $user = $className::create($request->all()); + $user = $userModel::create($request->all()); return response()->json(arrayView('phpsoft.users::user/read', [ 'user' => $user @@ -106,10 +106,10 @@ public function update(Request $request, $id = null) ]), 400); } - $className = $this->className; + $userModel = $this->userModel; // check user - $user = $id ? $className::find($id) : Auth::user(); + $user = $id ? $userModel::find($id) : Auth::user(); // Update profile if (!$user) { @@ -130,10 +130,10 @@ public function update(Request $request, $id = null) */ public function destroy($id) { - $className = $this->className; + $userModel = $this->userModel; // get user by id - $user = $className::find($id); + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -156,10 +156,10 @@ public function destroy($id) */ public function show($id) { - $className = $this->className; + $userModel = $this->userModel; // get user by id - $user = $className::find($id); + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -176,9 +176,9 @@ public function show($id) */ public function index(Request $request) { - $className = $this->className; + $userModel = $this->userModel; - $users = $className::browse([ + $users = $userModel::browse([ 'order' => [ Input::get('sort', 'id') => Input::get('direction', 'desc') ], 'limit' => ($limit = (int)Input::get('limit', 25)), 'cursor' => Input::get('cursor'), @@ -199,9 +199,9 @@ public function index(Request $request) */ public function block($id) { - $className = $this->className; + $userModel = $this->userModel; - $user = $className::find($id); + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -226,9 +226,9 @@ public function block($id) */ public function unblock($id) { - $className = $this->className; + $userModel = $this->userModel; - $user = $className::find($id); + $user = $userModel::find($id); if (!$user) { return response()->json(null, 404); @@ -253,9 +253,9 @@ public function unblock($id) */ public function assignRole($id, Request $request) { - $className = $this->className; + $userModel = $this->userModel; - $user = $className::find($id); + $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 08dab9e..941e892 100644 --- a/packages/Users/Models/User.php +++ b/packages/Users/Models/User.php @@ -55,10 +55,10 @@ class User extends Model */ public static function create(array $attributes = []) { - $className = Config::get('phpsoft.user.model'); + $userModel = config('phpsoft.user.model'); $attributes['password'] = bcrypt($attributes['password']); - $user = new $className($attributes); + $user = new $userModel($attributes); $user->save(); return $user; @@ -99,9 +99,9 @@ public function changePassword($newPassword) */ public static function browse($options = []) { - $className = Config::get('phpsoft.user.model'); + $userModel = config('phpsoft.user.model'); - $find = new $className; + $find = new $userModel; $fillable = $find->fillable; if (!empty($options['filters'])) { From a8e394b504bd6f6a08037f16826b08874ea17714 Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Thu, 26 Nov 2015 10:44:41 +0700 Subject: [PATCH 4/4] Move file config/phpsoft.users.php to package Users #86 --- packages/Users/Controllers/UserController.php | 3 +-- packages/Users/Models/User.php | 4 ++-- packages/Users/Providers/UserServiceProvider.php | 6 +++++- .../Users/config/phpsoft.users.php | 0 4 files changed, 8 insertions(+), 5 deletions(-) rename config/phpsoft.user.php => packages/Users/config/phpsoft.users.php (100%) diff --git a/packages/Users/Controllers/UserController.php b/packages/Users/Controllers/UserController.php index f8cd381..944641d 100644 --- a/packages/Users/Controllers/UserController.php +++ b/packages/Users/Controllers/UserController.php @@ -17,7 +17,7 @@ class UserController extends Controller public function __construct() { - $this->userModel = config('phpsoft.user.model'); + $this->userModel = config('phpsoft.users.model'); } /** @@ -66,7 +66,6 @@ public function store(Request $request) } $userModel = $this->userModel; - $user = $userModel::create($request->all()); return response()->json(arrayView('phpsoft.users::user/read', [ diff --git a/packages/Users/Models/User.php b/packages/Users/Models/User.php index 941e892..a122131 100644 --- a/packages/Users/Models/User.php +++ b/packages/Users/Models/User.php @@ -55,7 +55,7 @@ class User extends Model */ public static function create(array $attributes = []) { - $userModel = config('phpsoft.user.model'); + $userModel = config('phpsoft.users.model'); $attributes['password'] = bcrypt($attributes['password']); $user = new $userModel($attributes); @@ -99,7 +99,7 @@ public function changePassword($newPassword) */ public static function browse($options = []) { - $userModel = config('phpsoft.user.model'); + $userModel = config('phpsoft.users.model'); $find = new $userModel; $fillable = $find->fillable; diff --git a/packages/Users/Providers/UserServiceProvider.php b/packages/Users/Providers/UserServiceProvider.php index 2287f04..4989590 100644 --- a/packages/Users/Providers/UserServiceProvider.php +++ b/packages/Users/Providers/UserServiceProvider.php @@ -24,7 +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.user.php' => config_path('phpsoft.user.php'), + __DIR__ . '/../config/phpsoft.users.php' => config_path('phpsoft.users.php'), ]); // Register commands @@ -38,6 +38,10 @@ public function boot() */ public function register() { + $this->mergeConfigFrom( + __DIR__ . '/../config/phpsoft.users.php', 'phpsoft.users' + ); + $this->registerCommands(); } diff --git a/config/phpsoft.user.php b/packages/Users/config/phpsoft.users.php similarity index 100% rename from config/phpsoft.user.php rename to packages/Users/config/phpsoft.users.php