From 96dceb20f64f408d26feefe9c319c7ca0d4fcb40 Mon Sep 17 00:00:00 2001
From: Rasmus Fuhse <fuhse@data-quest.de>
Date: Wed, 14 Nov 2018 10:21:37 +0100
Subject: [PATCH] remove access tokens if desired

---
 controllers/configure.php  | 10 ++++++++++
 plugin.manifest            |  2 +-
 views/configure/myarea.php |  3 +++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/controllers/configure.php b/controllers/configure.php
index 760d5ab..439babf 100755
--- a/controllers/configure.php
+++ b/controllers/configure.php
@@ -10,6 +10,16 @@ class ConfigureController extends PluginController
             Navigation::activateItem('/profile/files');
         }
         PageLayout::setTitle(Config::get()->OWNCLOUD_NAME);
+        if (Request::isPost() && Request::submitted("remove")) {
+            $config = UserConfig::get($GLOBALS['user']->id);
+            $config->unsetValue("OWNCLOUD_ACCESS_TOKEN");
+            $config->unsetValue("OWNCLOUD_REFRESH_TOKEN");
+            $config->unsetValue("OWNCLOUD_ACTIVATED");
+            $config->unsetValue("OWNCLOUD_ACCESS_TOKEN_EXPIRES");
+            PageLayout::postMessage(MessageBox::success(_("Zugang zur Owncloud wurde aufgehoben.")));
+            $this->redirect(URLHelper::getURL("dispatch.php/files"));
+            return;
+        }
         if (Request::isPost()) {
             $config = UserConfig::get($GLOBALS['user']->id);
             $data = Request::getArray("owncloud");
diff --git a/plugin.manifest b/plugin.manifest
index ea1b794..1461ea0 100755
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,5 +1,5 @@
 pluginname=OwnCloudPlugin
 pluginclassname=OwnCloudPlugin
-version=1.1
+version=1.2
 origin=data-quest
 studipMinVersion=4.0
\ No newline at end of file
diff --git a/views/configure/myarea.php b/views/configure/myarea.php
index a0cc4da..23d9995 100755
--- a/views/configure/myarea.php
+++ b/views/configure/myarea.php
@@ -52,6 +52,9 @@
 
     <div data-dialog-button>
         <?= \Studip\Button::create(_("Speichern")) ?>
+        <? if (\Owncloud\OAuth::isReady()) : ?>
+            <?= \Studip\Button::create(_("Zugang aufheben"), "remove", array('data-confirm' => _("Wirklich den Zugang zur Owncloud aufheben?"))) ?>
+        <? endif ?>
     </div>
 </form>
 
-- 
GitLab