Compare commits

..

No commits in common. "15f95c0d74dfa29b4498b3553a79e2ff4f3afea7" and "8676ca4df980643c0c6e5eab7e997ae466d6e7a1" have entirely different histories.

9 changed files with 22 additions and 15 deletions

View File

@ -8,6 +8,7 @@ import (
"git.quimbo.fr/odwrtw/canape/backend/events" "git.quimbo.fr/odwrtw/canape/backend/events"
"git.quimbo.fr/odwrtw/canape/backend/models" "git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/tokens"
"git.quimbo.fr/odwrtw/canape/backend/web" "git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux" "github.com/gorilla/mux"
@ -164,7 +165,7 @@ func DeleteUserHandler(env *web.Env, w http.ResponseWriter, r *http.Request) err
} }
log.Infof("deleting user tokens") log.Infof("deleting user tokens")
if err := models.DeleteUserTokens(env.Database, user.Name); err != nil { if err := tokens.DeleteUserTokens(env.Database, user.Name); err != nil {
return err return err
} }

View File

@ -7,6 +7,7 @@ import (
"time" "time"
"git.quimbo.fr/odwrtw/canape/backend/models" "git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/tokens"
jwt "github.com/dgrijalva/jwt-go" jwt "github.com/dgrijalva/jwt-go"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
@ -56,7 +57,7 @@ func (a *Authorizer) GenHash(password string) (string, error) {
} }
// GenerateJWTToken generates a JWT token for a user // GenerateJWTToken generates a JWT token for a user
func (a *Authorizer) GenerateJWTToken(r *http.Request, u *models.User) (*models.Token, error) { func (a *Authorizer) GenerateJWTToken(r *http.Request, u *models.User) (*tokens.Token, error) {
// Create a jwt token // Create a jwt token
jwtToken := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ jwtToken := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
// Not before // Not before
@ -75,7 +76,7 @@ func (a *Authorizer) GenerateJWTToken(r *http.Request, u *models.User) (*models.
return nil, err return nil, err
} }
return &models.Token{ return &tokens.Token{
Token: ss, Token: ss,
Username: u.Name, Username: u.Name,
IP: getIPFromRequest(r), IP: getIPFromRequest(r),
@ -83,7 +84,7 @@ func (a *Authorizer) GenerateJWTToken(r *http.Request, u *models.User) (*models.
} }
// Login cheks password and creates a jwt token // Login cheks password and creates a jwt token
func (a *Authorizer) Login(r *http.Request, username, password string) (*models.Token, error) { func (a *Authorizer) Login(r *http.Request, username, password string) (*tokens.Token, error) {
u, err := models.GetUser(a.db, username) u, err := models.GetUser(a.db, username)
if err != nil { if err != nil {
return nil, err return nil, err
@ -156,7 +157,7 @@ func (a *Authorizer) CurrentUser(rw http.ResponseWriter, req *http.Request) (*mo
} }
// Check the token in database // Check the token in database
token, err := models.GetUserToken(a.db, u.Name, tokenStr) token, err := tokens.GetUserToken(a.db, u.Name, tokenStr)
if err != nil { if err != nil {
return nil, ErrInvalidToken return nil, ErrInvalidToken
} }

View File

@ -103,7 +103,7 @@ func (p *PolochonEventers) Unsubscribe(chanl *Channel) {
if err := tn.Unsubscribe(chanl); err != nil { if err := tn.Unsubscribe(chanl); err != nil {
p.log.Errorf("failed to unsubscribe eventer: %s", err.Error()) p.log.Errorf("failed to unsubscribe eventer: %s", err.Error())
// TODO: check if we need to return here return
} }
if len(tn.Subscribers()) == 0 { if len(tn.Subscribers()) == 0 {

View File

@ -3,6 +3,7 @@ package models
import ( import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/lib/pq" "github.com/lib/pq"
"git.quimbo.fr/odwrtw/canape/backend/sqly"
) )
const ( const (
@ -23,7 +24,7 @@ const (
// Media represents an external media // Media represents an external media
type Media struct { type Media struct {
BaseModel sqly.BaseModel
Type string `db:"type"` Type string `db:"type"`
Source string `db:"source"` Source string `db:"source"`
Category string `db:"category"` Category string `db:"category"`

View File

@ -5,6 +5,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"git.quimbo.fr/odwrtw/canape/backend/sqly"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/odwrtw/papi" "github.com/odwrtw/papi"
) )
@ -31,7 +32,7 @@ var ErrUnknownPolochon = fmt.Errorf("polochons: polochon does'nt exist")
// Polochon represents a polochon // Polochon represents a polochon
type Polochon struct { type Polochon struct {
BaseModel sqly.BaseModel
Name string `db:"name" json:"name"` Name string `db:"name" json:"name"`
URL string `db:"url" json:"url"` URL string `db:"url" json:"url"`
Token string `db:"token" json:"token"` Token string `db:"token" json:"token"`

View File

@ -5,6 +5,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"git.quimbo.fr/odwrtw/canape/backend/sqly"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/jmoiron/sqlx/types" "github.com/jmoiron/sqlx/types"
"github.com/odwrtw/papi" "github.com/odwrtw/papi"
@ -41,7 +42,7 @@ var ErrUnknownUser = fmt.Errorf("users: user does'nt exist")
// User represents an user // User represents an user
type User struct { type User struct {
BaseModel sqly.BaseModel
Name string `json:"name"` Name string `json:"name"`
Hash string `json:"-"` Hash string `json:"-"`
Admin bool `json:"admin"` Admin bool `json:"admin"`

View File

@ -1,4 +1,4 @@
package models package sqly
import ( import (
"time" "time"

View File

@ -1,4 +1,4 @@
package models package tokens
import ( import (
"database/sql" "database/sql"
@ -6,6 +6,7 @@ import (
"fmt" "fmt"
"time" "time"
"git.quimbo.fr/odwrtw/canape/backend/sqly"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
) )
@ -25,7 +26,7 @@ var (
// Token represents a token // Token represents a token
type Token struct { type Token struct {
BaseModel sqly.BaseModel
Username string `db:"username" json:"username"` Username string `db:"username" json:"username"`
Token string `db:"token" json:"token"` Token string `db:"token" json:"token"`
Description string `db:"description" json:"description"` Description string `db:"description" json:"description"`

View File

@ -10,6 +10,7 @@ import (
"git.quimbo.fr/odwrtw/canape/backend/config" "git.quimbo.fr/odwrtw/canape/backend/config"
"git.quimbo.fr/odwrtw/canape/backend/events" "git.quimbo.fr/odwrtw/canape/backend/events"
"git.quimbo.fr/odwrtw/canape/backend/models" "git.quimbo.fr/odwrtw/canape/backend/models"
"git.quimbo.fr/odwrtw/canape/backend/tokens"
"git.quimbo.fr/odwrtw/canape/backend/web" "git.quimbo.fr/odwrtw/canape/backend/web"
"github.com/gorilla/mux" "github.com/gorilla/mux"
) )
@ -163,7 +164,7 @@ func EditHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error {
func GetTokensHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error { func GetTokensHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error {
user := auth.GetCurrentUser(r, e.Log) user := auth.GetCurrentUser(r, e.Log)
tokens, err := models.GetUserTokens(e.Database, user.Name) tokens, err := tokens.GetUserTokens(e.Database, user.Name)
if err != nil { if err != nil {
return err return err
} }
@ -178,7 +179,7 @@ func DeleteTokenHandler(e *web.Env, w http.ResponseWriter, r *http.Request) erro
user := auth.GetCurrentUser(r, e.Log) user := auth.GetCurrentUser(r, e.Log)
if err := models.DeleteToken(e.Database, user.Name, token); err != nil { if err := tokens.DeleteToken(e.Database, user.Name, token); err != nil {
return err return err
} }
@ -192,7 +193,7 @@ func EditTokenHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error
user := auth.GetCurrentUser(r, e.Log) user := auth.GetCurrentUser(r, e.Log)
t, err := models.GetUserToken(e.Database, user.Name, token) t, err := tokens.GetUserToken(e.Database, user.Name, token)
if err != nil { if err != nil {
return err return err
} }