Compare commits

...

3 Commits
2.1 ... master

Author SHA1 Message Date
Maxime 1201ef254e Update README.md 2024-04-17 13:15:15 +02:00
Maxime abce313193 feat: post-fill hook 2024-04-17 13:06:48 +02:00
Maxime 9d17dacae2 Laravel 11 support 2024-04-12 12:13:50 +02:00
5 changed files with 38 additions and 10 deletions

View File

@ -4,21 +4,16 @@ Ce package permet d'utiliser [Bluesquare Connect](https://connect.bluesquare.io)
## Installation
Mettre à jour `composer.json` avec :
Mettre à jour les sources de `composer.json` avec :
```
"repositories": [
{
"type": "vcs",
"url": "https://git.bluesquare.io/bluesquare/laravel-connect"
}
]
composer config repositories.connect vcs https://git.bluesquare.io/bluesquare/laravel-connect.git -n
```
Puis installer le package :
```bash
composer require bluesquare/laravel-connect "2.1"
composer require bluesquare/laravel-connect "2.3"
```
Mettre à jour le `.env` avec les identifiants du client OAuth généré sur [Bluesquare Connect](https://connect.bluesquare.io) :
@ -111,6 +106,20 @@ protected $connectFillable = [
];
```
Un hook est disponible pour un post-traitement des données Connect (après création / mise à jour de l'utilisateur) ce qui peut être utile pour mettre à jour des relations :
```php
use HasConnectData;
public function postFillConnectData(array $data)
{
// Exemple
$this->roles()->sync(
Role::whereIn('name', $data['groups'])->pluck('id')
);
}
```
## Synchronisation des données _(optionnel)_
Par défaut, les données des utilisateurs sont mises à jour à chaque nouvelle connexion.

View File

@ -4,6 +4,7 @@ namespace Bluesquare\Connect\Commands;
use Bluesquare\Connect\Connect;
use Bluesquare\Connect\ConnectException;
use Bluesquare\Connect\Traits\HasConnectData;
use Bluesquare\Connect\Traits\HasConnectTokens;
use Illuminate\Console\Command;
@ -32,6 +33,10 @@ class Sync extends Command
$data = $connect->getUserData($model->connect_access_token);
$connect->updateUserData($model, $data);
$model->save();
if (in_array(HasConnectData::class, class_uses($model))) {
$model->postFillConnectData($data);
}
}
}
catch (\Exception $exception) {

View File

@ -6,6 +6,7 @@ use Bluesquare\Connect\Traits\HasConnectData;
use Bluesquare\Connect\Traits\HasConnectTokens;
use Bluesquare\Connect\Traits\HasConnectWebhook;
use GuzzleHttp\Client;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Http\Request;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Log;
@ -17,7 +18,7 @@ class Connect
{
protected $app;
public function __construct($app)
public function __construct(Application $app)
{
$this->app = $app;
}
@ -94,7 +95,7 @@ class Connect
$url = $this->getUrl() . '/oauth/authorize?' . $query;
return redirect()->to($url);
return redirect($url);
}
public function checkState(Request $request)
@ -223,6 +224,10 @@ class Connect
} else {
$this->updateUserData($model, $data);
$model->save();
if (in_array(HasConnectData::class, class_uses($model))) {
$model->postFillConnectData($data);
}
}
return $model;

View File

@ -44,4 +44,9 @@ trait HasConnectData
foreach ($touched as $model)
$model->save();
}
public function postFillConnectData(array $data)
{
// Intended for post-processing / relationship handling
}
}

View File

@ -18,6 +18,10 @@ trait HasConnectWebhook
}
$this->save();
if (in_array(HasConnectData::class, class_uses(self::class))) {
$this->postFillConnectData($data);
}
}
public function onConnectDelete(array $data)