diff --git a/packages/Webkul/Core/src/Database/Migrations/2020_01_02_201029_add_api_token_columns.php b/packages/Webkul/Core/src/Database/Migrations/2020_01_02_201029_add_api_token_columns.php new file mode 100644 index 000000000..b38f3983a --- /dev/null +++ b/packages/Webkul/Core/src/Database/Migrations/2020_01_02_201029_add_api_token_columns.php @@ -0,0 +1,52 @@ +string('api_token', 80) + ->after('password') + ->unique() + ->nullable() + ->default(null); + }); + + Schema::table('admins', function ($table) { + $table + ->string('api_token', 80) + ->after('password') + ->unique() + ->nullable() + ->default(null); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('customers', function (Blueprint $table) { + $table->dropColumn('api_token'); + }); + + Schema::table('admins', function (Blueprint $table) { + $table->dropColumn('api_token'); + }); + } +} diff --git a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php index 7d33eb61b..fa9a5b250 100755 --- a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php @@ -2,6 +2,8 @@ namespace Webkul\Customer\Http\Controllers; +use Illuminate\Support\Str; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Mail; use Webkul\Customer\Mail\RegistrationEmail; @@ -85,6 +87,7 @@ class RegistrationController extends Controller $data = request()->input(); $data['password'] = bcrypt($data['password']); + $data['api_token'] = Str::random(80); if (core()->getConfigData('customer.settings.email.verification')) { $data['is_verified'] = 0; diff --git a/packages/Webkul/Customer/src/Models/Customer.php b/packages/Webkul/Customer/src/Models/Customer.php index 6e653ca53..c9f4d194c 100755 --- a/packages/Webkul/Customer/src/Models/Customer.php +++ b/packages/Webkul/Customer/src/Models/Customer.php @@ -17,9 +17,9 @@ class Customer extends Authenticatable implements CustomerContract, JWTSubject protected $table = 'customers'; - protected $fillable = ['first_name', 'last_name', 'gender', 'date_of_birth', 'email', 'phone', 'password', 'customer_group_id', 'subscribed_to_news_letter', 'is_verified', 'token', 'notes', 'status']; + protected $fillable = ['first_name', 'last_name', 'gender', 'date_of_birth', 'email', 'phone', 'password', 'api_token', 'customer_group_id', 'subscribed_to_news_letter', 'is_verified', 'token', 'notes', 'status']; - protected $hidden = ['password', 'remember_token']; + protected $hidden = ['password', 'api_token', 'remember_token']; /** * Get the customer full name. diff --git a/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php b/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php index 517d9b4cc..e8a872767 100755 --- a/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php +++ b/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php @@ -2,6 +2,7 @@ namespace Webkul\User\Database\Seeders; +use Illuminate\Support\Str; use Illuminate\Database\Seeder; use DB; @@ -16,6 +17,9 @@ class AdminsTableSeeder extends Seeder 'name' => 'Example', 'email' => 'admin@example.com', 'password' => bcrypt('admin123'), + 'api_token' => Str::random(80), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), 'status' => 1, 'role_id' => 1, ]); diff --git a/packages/Webkul/User/src/Http/Controllers/UserController.php b/packages/Webkul/User/src/Http/Controllers/UserController.php index 8a680fcc6..4ff670d0e 100755 --- a/packages/Webkul/User/src/Http/Controllers/UserController.php +++ b/packages/Webkul/User/src/Http/Controllers/UserController.php @@ -2,6 +2,7 @@ namespace Webkul\User\Http\Controllers; +use Illuminate\Support\Str; use Illuminate\Support\Facades\Event; use Webkul\User\Repositories\AdminRepository; use Webkul\User\Repositories\RoleRepository; @@ -90,8 +91,10 @@ class UserController extends Controller { $data = $request->all(); - if (isset($data['password']) && $data['password']) + if (isset($data['password']) && $data['password']) { $data['password'] = bcrypt($data['password']); + $data['api_token'] = Str::random(80); + } Event::dispatch('user.admin.create.before'); @@ -130,10 +133,11 @@ class UserController extends Controller { $data = $request->all(); - if (! $data['password']) + if (! $data['password']) { unset($data['password']); - else + } else { $data['password'] = bcrypt($data['password']); + } if (isset($data['status'])) { $data['status'] = 1; diff --git a/packages/Webkul/User/src/Models/Admin.php b/packages/Webkul/User/src/Models/Admin.php index 5757e1ff6..a35fce6e1 100755 --- a/packages/Webkul/User/src/Models/Admin.php +++ b/packages/Webkul/User/src/Models/Admin.php @@ -19,7 +19,7 @@ class Admin extends Authenticatable implements AdminContract * @var array */ protected $fillable = [ - 'name', 'email', 'password', 'role_id', 'status', + 'name', 'email', 'password', 'api_token', 'role_id', 'status', ]; /** @@ -28,7 +28,7 @@ class Admin extends Authenticatable implements AdminContract * @var array */ protected $hidden = [ - 'password', 'remember_token', + 'password', 'api_token', 'remember_token', ]; /**