From d58c9a81babf25c374b6a0db8c76b162855c06e9 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 28 Oct 2021 11:58:33 +0200
Subject: [PATCH] EHN: add GetSessionInfo RPC

---
 proto/caosdb/acm/v1alpha1/main.proto  |  9 ++++++---
 proto/caosdb/info/v1alpha1/main.proto | 19 +++++++++++++++++++
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/proto/caosdb/acm/v1alpha1/main.proto b/proto/caosdb/acm/v1alpha1/main.proto
index 20e6a32..3108085 100644
--- a/proto/caosdb/acm/v1alpha1/main.proto
+++ b/proto/caosdb/acm/v1alpha1/main.proto
@@ -77,9 +77,12 @@ message ListRolesResponse {
   repeated Role roles = 2;
 }
 
-// Request message for the <+TODO+> RPC
-message CreateSingleRoleRequest {}
-// Response message for the <+TODO+> RPC
+// Request message for the CreateSingleRole RPC
+message CreateSingleRoleRequest {
+  // The new role.
+  Role role = 1;
+}
+// Response message for the CreateSingleRole RPC
 message CreateSingleRoleResponse {}
 // Request message for the <+TODO+> RPC
 message RetrieveSingleRoleRequest {}
diff --git a/proto/caosdb/info/v1alpha1/main.proto b/proto/caosdb/info/v1alpha1/main.proto
index d1291da..bcdf43e 100644
--- a/proto/caosdb/info/v1alpha1/main.proto
+++ b/proto/caosdb/info/v1alpha1/main.proto
@@ -25,6 +25,9 @@ option java_package        = "org.caosdb.api.info.v1alpha1";
 
 package caosdb.info.v1alpha1;
 
+
+/////////////////////////////// SERVER VERSION
+
 // The version of an agent (following SemVer 2.0.0)
 message VersionInfo {
   // Major version number
@@ -48,8 +51,24 @@ message GetVersionInfoResponse {
   VersionInfo version_info = 1;
 }
 
+////////////////////////// SESSION
+
+// Request message for the GetSessionInfo RPC
+message GetSessionInfoRequest {
+}
+
+// Response message for the GetSessionInfo RPC
+message GetSessionInfoResponse {
+  string realm = 1;
+  string username = 2;
+  repeated string roles = 3;
+  int64 expires = 4;
+}
+
 // A service which provides general information about the server.
 service GeneralInfoService {
   // Request the detailed version information from the server.
   rpc GetVersionInfo(GetVersionInfoRequest) returns (GetVersionInfoResponse) {};
+  // Request information about the current session (user, roles, timeout...).
+  rpc GetSessionInfo(GetSessionInfoRequest) returns (GetSessionInfoResponse) {};
 }
-- 
GitLab