Torkel Ödegaard 11 yıl önce
ebeveyn
işleme
2380a26987
5 değiştirilmiş dosya ile 24 ekleme ve 7 silme
  1. 1 1
      grafana
  2. 4 2
      pkg/api/api_dashboard.go
  3. 11 0
      pkg/api/api_login.go
  4. 6 2
      pkg/stores/rethinkdb.go
  5. 2 2
      pkg/stores/store.go

+ 1 - 1
grafana

@@ -1 +1 @@
-Subproject commit 477f66f56bdd7f310d439ac428cb646fbb9b1949
+Subproject commit c00384ad0644f9db7cdfa426c559d8fc3347a1d2

+ 4 - 2
pkg/api/api_dashboard.go

@@ -29,8 +29,9 @@ func (self *HttpServer) getDashboard(c *gin.Context) {
 
 
 func (self *HttpServer) search(c *gin.Context) {
 func (self *HttpServer) search(c *gin.Context) {
 	query := c.Params.ByName("q")
 	query := c.Params.ByName("q")
+	accountId, err := c.Get("accountId")
 
 
-	results, err := self.store.Query(query)
+	results, err := self.store.Query(query, accountId.(int))
 	if err != nil {
 	if err != nil {
 		log.Error("Store query error: %v", err)
 		log.Error("Store query error: %v", err)
 		c.JSON(500, newErrorResponse("Failed"))
 		c.JSON(500, newErrorResponse("Failed"))
@@ -42,12 +43,13 @@ func (self *HttpServer) search(c *gin.Context) {
 
 
 func (self *HttpServer) postDashboard(c *gin.Context) {
 func (self *HttpServer) postDashboard(c *gin.Context) {
 	var command saveDashboardCommand
 	var command saveDashboardCommand
+	accountId, _ := c.Get("accountId")
 
 
 	if c.EnsureBody(&command) {
 	if c.EnsureBody(&command) {
 		dashboard := models.NewDashboard("test")
 		dashboard := models.NewDashboard("test")
 		dashboard.Data = command.Dashboard
 		dashboard.Data = command.Dashboard
 		dashboard.Title = dashboard.Data["title"].(string)
 		dashboard.Title = dashboard.Data["title"].(string)
-		dashboard.AccountId = 1
+		dashboard.AccountId = accountId.(int)
 		dashboard.UpdateSlug()
 		dashboard.UpdateSlug()
 
 
 		if dashboard.Data["id"] != nil {
 		if dashboard.Data["id"] != nil {

+ 11 - 0
pkg/api/api_login.go

@@ -51,6 +51,17 @@ func (self *HttpServer) logoutPost(c *gin.Context) {
 	c.JSON(200, gin.H{"status": "logged out"})
 	c.JSON(200, gin.H{"status": "logged out"})
 }
 }
 
 
+type GrafanaReqContext struct {
+}
+
+type authenticatedAuthRouteFunc func(c *gin.Context, grc GrafanaReqContext)
+
+func (self *HttpServer) addAuthRoute(route string, handler authenticatedAuthRouteFunc) {
+	self.router.GET(route, self.auth(), func(c *gin.Context) {
+
+	})
+}
+
 func (self *HttpServer) auth() gin.HandlerFunc {
 func (self *HttpServer) auth() gin.HandlerFunc {
 	return func(c *gin.Context) {
 	return func(c *gin.Context) {
 		session, _ := sessionStore.Get(c.Request, "grafana-session")
 		session, _ := sessionStore.Get(c.Request, "grafana-session")

+ 6 - 2
pkg/stores/rethinkdb.go

@@ -44,6 +44,10 @@ func NewRethinkStore(config *RethinkCfg) *rethinkStore {
 		return []interface{}{row.Field("AccountId"), row.Field("Slug")}
 		return []interface{}{row.Field("AccountId"), row.Field("Slug")}
 	}).Exec(session)
 	}).Exec(session)
 
 
+	r.Db(config.DatabaseName).Table("dashboards").IndexCreateFunc("AccountId", func(row r.Term) interface{} {
+		return []interface{}{row.Field("AccountId")}
+	}).Exec(session)
+
 	r.Db(config.DatabaseName).Table("accounts").IndexCreateFunc("AccountLogin", func(row r.Term) interface{} {
 	r.Db(config.DatabaseName).Table("accounts").IndexCreateFunc("AccountLogin", func(row r.Term) interface{} {
 		return []interface{}{row.Field("Login")}
 		return []interface{}{row.Field("Login")}
 	}).Exec(session)
 	}).Exec(session)
@@ -88,9 +92,9 @@ func (self *rethinkStore) GetDashboard(slug string, accountId int) (*models.Dash
 	return &dashboard, nil
 	return &dashboard, nil
 }
 }
 
 
-func (self *rethinkStore) Query(query string) ([]*models.SearchResult, error) {
+func (self *rethinkStore) Query(query string, accountId int) ([]*models.SearchResult, error) {
+	docs, err := r.Table("dashboards").GetAllByIndex("AccountId", []interface{}{accountId}).Filter(r.Row.Field("Title").Match(".*")).Run(self.session)
 
 
-	docs, err := r.Table("dashboards").Filter(r.Row.Field("Title").Match(".*")).Run(self.session)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}

+ 2 - 2
pkg/stores/store.go

@@ -5,9 +5,9 @@ import (
 )
 )
 
 
 type Store interface {
 type Store interface {
-	GetDashboard(title string, accountId int) (*models.Dashboard, error)
+	GetDashboard(slug string, accountId int) (*models.Dashboard, error)
 	SaveDashboard(dash *models.Dashboard) error
 	SaveDashboard(dash *models.Dashboard) error
-	Query(query string) ([]*models.SearchResult, error)
+	Query(query string, acccountId int) ([]*models.SearchResult, error)
 	SaveUserAccount(acccount *models.UserAccount) error
 	SaveUserAccount(acccount *models.UserAccount) error
 	GetUserAccountLogin(emailOrName string) (*models.UserAccount, error)
 	GetUserAccountLogin(emailOrName string) (*models.UserAccount, error)
 	Close()
 	Close()