logout verbessert

This commit is contained in:
holger.trampe 2021-07-26 10:13:45 +02:00
parent 00b6a377e6
commit 8ee73d4f77
6 changed files with 70 additions and 4 deletions

View File

@ -5,7 +5,7 @@
<name>Agency</name>
<summary>App for managing Agency of DA</summary>
<description><![CDATA[test]]></description>
<version>0.0.2</version>
<version>0.0.3</version>
<licence></licence>
<namespace>Agency</namespace>
<category>tools</category>

View File

@ -16,5 +16,6 @@ return [
['name' => 'group#delagencygroup', 'url' => '/delagencygroup/{id}', 'verb' => 'GET'],
# DEVELOPMENT
['name' => 'migrate#startMigration', 'url' => '/startmigration', 'verb' => 'PUT'],
['name' => 'migrate#getcurrentuser', 'url' => '/getcurrentuser', 'verb' => 'POST'],
]
];

1
img/cogs-solid.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cogs" class="svg-inline--fa fa-cogs fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"></path></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,50 @@
<?php
namespace OCA\Agency\AppInfo;
use OCP\User\Events\BeforeUserLoggedOutEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\AppFramework\App;
use OCP\IUserSession;
use OCP\AppFramework\Controller;
use OCP\IRequest;
class Application extends App {
protected $appName = 'Agency';
public function __construct() {
parent::__construct($this->appName);
$dispatcher = $this->getContainer()->query(IEventDispatcher::class);
# ADding the Pre-Logout-Event for logging a User out of Django when user is atempt to logout from the cloud
$dispatcher->addServiceListener(BeforeUserLoggedOutEvent::class, LogoutByNC::class);
}
}
/*
LOGOUT DJANGO BY NC
Diese Klasse wird erzeugt, wenn das Evenet BeforeUserLoggedOutEvent getriggert wird. Dann wird
der User über die Django-API ausgeloggt!
*/
class LogoutByNC extends Controller {
protected $session;
public function __construct(string $AppName, IRequest $request, IUserSession $session) {
parent::__construct($AppName, $request);
$this->session = $session;
}
# Logout the user!
public function handle(BeforeUserLoggedOutEvent $event): void {
$opts = [
"http" => [
"method" => "GET",
"header" => ""
]
];
$context = stream_context_create($opts);
$file = file_get_contents('http://host.docker.internal:8000/api/logout/'.$this->session->getUser()->getUID(), false, $context);
}
}

View File

@ -11,9 +11,9 @@ use OCP\IGroup;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Controller;
use OCP\IDBConnection;
class MigrateController extends Controller {
protected $userSession;
@ -31,6 +31,7 @@ class MigrateController extends Controller {
$this->connection = $connection;
$this->groupManager = $groupManager;
$this->userManager = $userManager;
}
// Return an random Id-Ele for generating single IDs
@ -45,7 +46,8 @@ class MigrateController extends Controller {
}
/**
* @NoAdminRequired
* @NoCSRFRequired
* @NoAdminRequired
*/
public function startMigration(string $agencyid, string $mainurl) {
$json = file_get_contents($mainurl.$agencyid);
@ -60,9 +62,20 @@ class MigrateController extends Controller {
if($this->userManager->userExists($ele['userid']) == false){
$tempuser = $this->userManager->createUser($ele['userid'], $this->generateRandomPassword());
$tempuser->setEmailAddress($ele['userid']);
$tempuser->setDisplayName($ele['displayname']);
}
}
return $feedbackstring;
}
}
/**
* @PublicPage
* @NoCSRFRequired
* @NoAdminRequired
*/
public function getcurrentuser(){
#return $this->userSession->getUser()->getUID();
return $this->userSession->getSession();
}
}

View File

@ -19,3 +19,4 @@ export default [
component: Migrate,
},
]
// TODO: Hier migrate usw. auf den richtigen Pfad setzen und agencydata auch wieder auf agencydata usw.