Forráskód Böngészése

Working on login user name state

Torkel Ödegaard 11 éve
szülő
commit
4dfe8b6f69
5 módosított fájl, 38 hozzáadás és 12 törlés
  1. 1 1
      grafana
  2. 7 1
      pkg/api/api.go
  3. 7 3
      pkg/api/api_login.go
  4. 11 2
      pkg/api/api_models.go
  5. 12 5
      views/index.html

+ 1 - 1
grafana

@@ -1 +1 @@
-Subproject commit 4b382e0faff3fa2e5c05ca3306d54d8e5f8ca89c
+Subproject commit 4f798cfe568db2491fe5eea3f06ddd3027117e90

+ 7 - 1
pkg/api/api.go

@@ -58,7 +58,13 @@ func (self *HttpServer) ListenAndServe() {
 }
 
 func (self *HttpServer) index(c *gin.Context) {
-	c.HTML(200, "index.html", &indexViewModel{title: "hello from go"})
+	viewModel := &IndexDto{}
+	login, _ := c.Get("login")
+	if login != nil {
+		viewModel.User.Login = login.(string)
+	}
+
+	c.HTML(200, "index.html", viewModel)
 }
 
 func CacheHeadersMiddleware() gin.HandlerFunc {

+ 7 - 3
pkg/api/api_login.go

@@ -35,12 +35,15 @@ func (self *HttpServer) loginPost(c *gin.Context) {
 	}
 
 	session, _ := sessionStore.Get(c.Request, "grafana-session")
-	session.Values["login"] = true
+	session.Values["login"] = loginModel.Email
 	session.Values["accountId"] = account.DatabaseId
-
 	session.Save(c.Request, c.Writer)
 
-	c.JSON(200, gin.H{"status": "you are logged in"})
+	var resp = &LoginResultDto{}
+	resp.Status = "Logged in"
+	resp.User.Login = account.Login
+
+	c.JSON(200, resp)
 }
 
 func (self *HttpServer) logoutPost(c *gin.Context) {
@@ -73,6 +76,7 @@ func (self *HttpServer) auth() gin.HandlerFunc {
 		}
 
 		c.Set("accountId", session.Values["accountId"])
+		c.Set("login", session.Values["login"])
 
 		session.Save(c.Request, c.Writer)
 	}

+ 11 - 2
pkg/api/api_models.go

@@ -10,8 +10,17 @@ type errorResponse struct {
 	Message string `json:"message"`
 }
 
-type indexViewModel struct {
-	title string
+type IndexDto struct {
+	User CurrentUserDto
+}
+
+type CurrentUserDto struct {
+	Login string `json:"login"`
+}
+
+type LoginResultDto struct {
+	Status string         `json:"status"`
+	User   CurrentUserDto `json:"user"`
 }
 
 func newErrorResponse(message string) *errorResponse {

+ 12 - 5
views/index.html

@@ -1,6 +1,5 @@
 <!DOCTYPE html>
-  <!--[if IE 8]>         <html class="no-js lt-ie9" lang="en"> <![endif]-->
-  <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -8,6 +7,7 @@
 
     <title>Grafana</title>
     <link rel="stylesheet" href="/public/css/grafana.dark.min.css" title="Dark">
+    <link rel="icon" type="image/png" href="img/fav32.png">
 		<base href="/">
 
     <!-- build:js app/app.js -->
@@ -20,12 +20,11 @@
   </head>
 
   <body ng-cloak ng-controller="GrafanaCtrl">
-
     <link rel="stylesheet" href="/public/css/grafana.light.min.css" ng-if="grafana.style === 'light'">
 
-		<div class="pro-container" ng-class="{'pro-sidemenu-open': showProSideMenu}">
+		<div class="pro-container" ng-class="{'pro-sidemenu-open': grafana.sidemenu}">
 
-			<aside class="pro-sidemenu" ng-if="showProSideMenu">
+			<aside class="pro-sidemenu" ng-if="grafana.sidemenu">
 				<div ng-include="'app/partials/pro/sidemenu.html'"></div>
 			</aside>
 
@@ -39,4 +38,12 @@
 		</div>
 
   </body>
+
+	<script>
+		window.grafanaBootData = {
+				user: {
+			    login: [[.User.Login]]
+				}
+		};
+	</script>
 </html>