1. Go to this page and download the library: Download slashid/laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// web.php
Route::get('/content-management', function () {
// Route that only someone in the group "Editor" can access.
})->middleware('slashid_group:Editor');
Route::get('/admin', function () {
// Route that only someone in the group "Admin" can access.
})->middleware('slashid_group:Admin');
// web.php
Route::get('/group/Admin-OR-Editor', function () {
// Route that someone in the group "Admin", OR in the group "Editor", OR in the group "Reviewer" can access.
})->middleware('slashid_group:Admin|Editor|Reviewer');
Route::get('/very-secure-page', function () {
// Route that is only accessed by someone *both* in the "Admin" and "Editor" groups.
})->middleware('slashid_group:Admin&Editor');
if ($user->hasGroup('Editor')) {
// Do things that only an "Editor" user can do.
}
if ($user->hasAnyGroup(['Admin', 'Editor', 'Reviewer'])) {
// Do things that someone in the group "Admin", OR in the group "Editor", OR
// in the group "Reviewer" can do.
}
if ($user->hasAllGroups(['Admin', 'Editor'])) {
// Do things that only someone that is in *both* "Admin" and "Editor" groups
// can do.
}
// Shows the user groups as a list of strings.
var_dump($user->getGroups());
// some-template.blade.php
@if (auth()->user())
<p>You are logged in</p>
@if (auth()->user()->hasGroup('Editor'))
<p>Information Editors can access.</p>
@endif
@if (auth()->user()->hasGroup('Admin'))
<p>Information Admins can access.</p>
@endif
@if (auth()->user()->hasAnyGroup(['Admin', 'Editor']))
<p>Information both Editors & Admins can access.</p>
@endif
@else
<p>You are NOT logged in</p>
@endif
// app/Listeners/WebhookListener.php
namespace App\Listeners;
use SlashId\Laravel\Events\WebhookEvent;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
class WebhookListener
{
/**
* Handle the event.
*/
public function handle(WebhookEvent $event): void
{
print_r([
$event->getEventName(),
$event->getEventId(),
$event->getTriggerContent(),
]);
}
}
// app/Providers/EventServiceProvider.php
namespace App\Providers;
use App\Listeners\WebhookListener;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use SlashId\Laravel\Events\WebhookEvent;
class EventServiceProvider extends ServiceProvider
{
/**
* The event to listener mappings for the application.
*
* @var array<class-string, array<int, class-string>>
*/
protected $listen = [
WebhookEvent::class => [
WebhookListener::class,
],
];
// ... rest of the class provided by Laravel ...
}
use SlashId\Laravel\SlashIdUser;
/** @var \Illuminate\Contracts\Auth\Authenticatable[] */
$laravelUsers = \App\Models\User::all();
$slashIdUsers = [];
foreach ($laravelUsers as $laravelUser) {
$slashIdUser = new SlashIdUser();
$slashIdUser
->addEmailAddress($laravelUser->email)
->setLegacyPasswordToMigrate($laravelUser->getAuthPassword())
// Uncomment if you want to set the phone number.
// ->addPhoneNumber($laravelUser->phone_number)
// Uncomment if you want to set groups.
// ->setGroups(['Editor'])
// Uncomment if you want to specify a region for the user.
// ->setRegion('us-iowa')
->setBucketAttributes(\SlashId\Php\PersonInterface::BUCKET_ORGANIZATION_END_USER_NO_ACCESS, [
// List the user attributes you want to migrate, grouped by bucket.
'old_id' => $laravelUser->getAuthIdentifier(),
'firstname' => $laravelUser->firstname,
'email_verified_at' => $laravelUser->email_verified_at,
'lastname' => $laravelUser->lastname,
'username' => $laravelUser->username,
]);
$slashIdUsers[] = $slashIdUser;
}
return $slashIdUsers;
$ php artisan slashid:import:create-script
Please inform the class of the user model [\App\Models\User]:
>
The Slash ID migration script has been created at /var/www/html/database/slashid/user-migration.php. Please open the file and modify it according to the instructions in it.
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.