diff --git a/pass/routes/authentication.js b/pass/routes/authentication.js
index 76855b5ac9d9afdb1cf7092f984cad573c833e22..27306e228c61b2a7e8cc4c34358aded2ff02b228 100644
--- a/pass/routes/authentication.js
+++ b/pass/routes/authentication.js
@@ -43,12 +43,13 @@ router.use(
       claimCheck((req, claims) => {
         if (req.oidc.isAuthenticated()) {
           if (
-            claims.resource_access !== undefined &&
-            claims.resource_access["metager-key"] !== undefined &&
-            claims.resource_access["metager-key"].roles !== undefined &&
-            claims.resource_access["metager-key"].roles.includes("metager-key")
+            claims["metager-key_roles"] !== undefined &&
+            claims["metager-key_roles"].includes("metager-key")
           ) {
+            console.log("admin");
             req.data.admin = true;
+            req.data.auth_session_expiration_seconds =
+              auth_session_expiration_seconds;
           }
           return true;
         }
diff --git a/pass/routes/orders/refund.js b/pass/routes/orders/refund.js
index 8dac122dc9c9ce43d841d20016c42a9f9d217b11..93ce050bb1a0cc0c7d70d3194db46e62e81414b1 100644
--- a/pass/routes/orders/refund.js
+++ b/pass/routes/orders/refund.js
@@ -3,7 +3,7 @@ var router = express.Router({ mergeParams: true });
 
 const config = require("config");
 
-// Base URLÖ: /key/:key/orders/:order/refund
+// Base URL: /key/:key/orders/:order/refund
 router.use("/", (req, res, next) => {
   let refund_count = Math.min(
     req.data.key.charge,
@@ -41,9 +41,9 @@ router.post("/", (req, res, next) => {
       amount: req.data.order.refund.amount,
       count: req.data.order.refund.count,
     };
-    req.data.order.refund.moderation_url = `/key/${
+    req.data.order.refund.moderation_url = `${config.get("app.url")}/key/${
       req.data.key.key
-    }/orders/${req.data.order.order.getOrderID()}/refund${new URLSearchParams(
+    }/orders/${req.data.order.order.getOrderID()}/refund?${new URLSearchParams(
       request_data
     ).toString()}`;
     // Render the message
@@ -91,4 +91,20 @@ router.post("/", (req, res, next) => {
   }
 });
 
+router.put(
+  "/",
+  (req, res, next) => {
+    if (!req.data.admin) {
+      res.locals.error = { status: 401 };
+      res.locals.message = "Unauthorized";
+      res.render("error");
+    } else {
+      next();
+    }
+  },
+  (req, res) => {
+    console.log("test");
+  }
+);
+
 module.exports = router;
diff --git a/pass/views/orders/refund.ejs b/pass/views/orders/refund.ejs
index 52ca0b4afe26e8963d50858b03a13ec1235bfcdc..66a5dede70e5028e56d12345d792d620b34a272f 100644
--- a/pass/views/orders/refund.ejs
+++ b/pass/views/orders/refund.ejs
@@ -9,6 +9,15 @@
     <%_ if (typeof order.refund.success !== "undefined" && order.refund.success === true) { _%>
     <p>Ihre Anfrage wurde uns erfolgreich zugestellt. Wir bearbeiten diese so schnell wie möglich. Je nach Zahlungsmethode kann es einige Tage dauern, bis eine Erstattung in Ihren Umsätzen sichtbar wird.</p>
     <%_ } else { _%>
+    <%_ if (admin === true) { _%>
+    <form id="refund-form" method="post">
+        <input type="hidden" name="_method" value="put">
+        <button class="button">
+            <img src="/images/money.svg" alt="" aria-hidden="true">
+            <span><%= order.refund.amount.toFixed(2) %>€ erstatten</span>
+        </button>
+    </form>
+    <%_ } else { _%>
     <form id="refund-form" method="post">
         <input type="hidden" name="amount" value="<%= order.refund.amount.toFixed(2) %>">
         <input type="hidden" name="count" value="<%= order.refund.count %>">
@@ -27,4 +36,5 @@
         </button>
     </form>
     <%_ } _%>
+    <%_ } _%>
 </div>
\ No newline at end of file
diff --git a/pass/views/templates/page_header.ejs b/pass/views/templates/page_header.ejs
index 9792503cac0c7a996c1e23fe9a5d6a003d67b2e9..05bf1e91952867b2f425e3c5ab0b47311eb169c2 100644
--- a/pass/views/templates/page_header.ejs
+++ b/pass/views/templates/page_header.ejs
@@ -4,6 +4,9 @@
 <head>
   <title>MetaGer - Pass</title>
   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+  <%_ if (typeof auth_session_expiration_seconds !== "undefined") { _%>
+  <meta http-equiv="refresh" content="<%= auth_session_expiration_seconds %>; URL=/">
+  <%_ } _%>
   <link rel='stylesheet' href='/styles/base.css' />
   <%_ if (typeof css !=='undefined' ) { -%>
     <%_ css.forEach(css_file=> { -%>