From 8d841a0862bd0baa85df04f489981aff49977d39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robin=20D=C3=B6rge?= <rdoerge@student.ethz.ch>
Date: Sat, 13 Oct 2018 02:11:09 +0200
Subject: [PATCH] Implemented a Resetbutton which deletes all sessions of a
 specific user.

---
 src/users/viewUser.js | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/users/viewUser.js b/src/users/viewUser.js
index cb90152..3839e6d 100644
--- a/src/users/viewUser.js
+++ b/src/users/viewUser.js
@@ -4,7 +4,7 @@ import { ListSelect, DatalistController } from 'amiv-web-ui-components';
 import ItemView from '../views/itemView';
 import TableView from '../views/tableView';
 import RelationlistController from '../relationlistcontroller';
-import { ResourceHandler } from '../auth';
+import { ResourceHandler, deleteSession } from '../auth';
 import { chip, icons, Property } from '../views/elements';
 import { colors } from '../style';
 
@@ -34,6 +34,7 @@ export default class UserView extends ItemView {
           where: { _id: { $nin: groupIds } },
         });
       });
+    this.sessionsHandler = new ResourceHandler('sessions');
   }
 
   oninit() {
@@ -91,7 +92,35 @@ export default class UserView extends ItemView {
 
     return this.layout([
       m('div.maincontainer', [
-        m('h1', `${this.data.firstname} ${this.data.lastname}`),
+        m('div', { style: { display: 'flex' } }, [
+          m('h1', `${this.data.firstname} ${this.data.lastname}`),
+          m('div.reset', {
+            style: {
+              'margin-left': 'auto',
+              'margin-right': '5px',
+              'margin-top': '5px',
+            },
+          }, [
+            m(Button, {
+
+              label: `Reset ${this.resource.charAt(0).toUpperCase()}${this.resource.slice(1, -1)}`,
+              className: 'itemView-delete-button',
+              border: true,
+              events: {
+                onclick: () => {
+                  this.sessionsHandler.get({
+                    where: { user: this.data._id },
+                  }).then((response) => {
+                    response._items.forEach((session) => {
+                      this.sessionsHandler.delete(session);
+                    });
+                    console.log(response);
+                  });
+                },
+              },
+            }),
+          ]),
+        ]),
         membership,
         this.data.department && m(
           chip,
-- 
GitLab