Roles via Nextcloud groups: sms-admin/manager/viewer + fix OAuth instance_uri
Deploy / deploy (push) Successful in 29s
Deploy / deploy (push) Successful in 29s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
fc4579c47d
commit
2937004118
16 files changed
+506
-5
No files matched your search
@@ -19,6 +19,13 @@ class OAuthController extends Controller
|
||||
{
|
||||
$socialUser = Socialite::driver('nextcloud')->user();
|
||||
|
||||
$ncGroups = $socialUser->getRaw()['ocs']['data']['groups'] ?? [];
|
||||
$smsRoles = array_intersect($ncGroups, ['sms-admin', 'sms-manager', 'sms-viewer']);
|
||||
|
||||
if (empty($smsRoles)) {
|
||||
abort(403, 'Kein Zugriff — bitte einer SMS-Gruppe in Nextcloud beitreten.');
|
||||
}
|
||||
|
||||
$user = User::firstOrCreate(
|
||||
['email' => $socialUser->getEmail()],
|
||||
[
|
||||
@@ -27,6 +34,8 @@ class OAuthController extends Controller
|
||||
]
|
||||
);
|
||||
|
||||
$user->syncRoles(array_values($smsRoles));
|
||||
|
||||
Auth::login($user, remember: true);
|
||||
|
||||
return redirect('/dashboard');
|
||||
|
||||
Reference in new issue
Block a user