4 Commits

Author SHA1 Message Date
Adrian Zürcher
a797700685 change db to fixed name and path is definable 2025-10-24 11:01:52 +02:00
Adrian Zürcher
d7890f747b change repo name 2025-10-24 10:51:25 +02:00
Adrian Zürcher
e469b61bb2 move handlers to root folder 2025-10-24 10:43:59 +02:00
Adrian Zürcher
42c4f1d915 move handlers to root folder 2025-10-24 10:42:31 +02:00
10 changed files with 37 additions and 37 deletions

3
.gitignore vendored
View File

@@ -1 +1,2 @@
*.log
*.log
*.db

View File

@@ -21,13 +21,12 @@ It provides ready-to-use user authentication (login, refresh, logout, user info)
```
AccessHandler/
├── handlers/
│ ├── access_handler.go # AccessHandler initialization
│ ├── db_handler.go # Database handler using GORM
│ ├── login.go # Login, Refresh, Me, Logout handlers
│ ├── middleware.go # middleware authentification
| ├── role.go # database handling for roles
| ├── user.go # database users for roles
├── access_handler.go # AccessHandler initialization
├── db_handler.go # Database handler using GORM
├── login.go # Login, Refresh, Me, Logout handlers
├── middleware.go # middleware authentification
├── role.go # database handling for roles
├── user.go # database users for roles
|
├── models/
│ ├── jsonResponse.go # Json responses model
@@ -79,7 +78,7 @@ go get https://gitea.tecamino.com/paadi/tecamino-logger/logging
## 🔑 Authentication Constants
In `handlers/login.go`:
In `login.go`:
```go
// -----------------------------
@@ -119,7 +118,6 @@ var REFRESH_SECRET = []byte("*")
package main
import (
"AccessHandler/handlers"
"gitea.tecamino.com/paadi/tecamino-logger/logging"
"github.com/gin-gonic/gin"
"log"
@@ -127,7 +125,7 @@ import (
func main() {
logger, _ := logging.NewLogger("server.log", nil)
accessHandler, err := handlers.NewAccessHandler("access.db", logger)
accessHandler, err := NewAccessHandler("access.db", logger)
if err != nil {
log.Fatal(err)
}

View File

@@ -1,4 +1,4 @@
package handlers
package AccessHandler
import "gitea.tecamino.com/paadi/tecamino-logger/logging"
@@ -35,7 +35,7 @@ type AccessHandler struct {
// - Default role(s)
//
// Parameters:
// - dbPath: The file path or connection string for the database.
// - dbPath: The file path to the database.
// - logger: Optional pointer to a logging.Logger instance. If nil, a new one is created.
//
// Returns:
@@ -43,12 +43,12 @@ type AccessHandler struct {
// - err: Any error that occurs during initialization.
//
// Example:
// handler, err := handlers.NewAccessHandler("data/app.db", appLogger)
// handler, err := NewAccessHandler("data/app.db", appLogger)
// if err != nil {
// log.Fatal(err)
// }
//
func NewAccessHandler(dbPath string, logger *logging.Logger) (aH *AccessHandler, err error) {
func NewAccessHandler(path string, logger *logging.Logger) (aH *AccessHandler, err error) {
if logger == nil {
logger, err = logging.NewLogger("accessHandler.log", nil)
if err != nil {
@@ -65,7 +65,7 @@ func NewAccessHandler(dbPath string, logger *logging.Logger) (aH *AccessHandler,
logger.Debug("NewAccessHandler", "initialize db handler")
// Create a new DB handler instance
aH.dbHandler, err = NewDBHandler(dbPath, logger)
aH.dbHandler, err = NewDBHandler(path, logger)
if err != nil {
aH.logger.Error("NewAccessHandler", err)
return

View File

@@ -1,8 +1,9 @@
package handlers
package AccessHandler
import (
"errors"
"fmt"
"path/filepath"
"reflect"
"strings"
@@ -43,8 +44,9 @@ type DBHandler struct {
// Returns:
// - dH: A pointer to the initialized `DBHandler`.
// - err: Any error encountered during database connection.
func NewDBHandler(dbPath string, logger *logging.Logger) (dH *DBHandler, err error) {
func NewDBHandler(path string, logger *logging.Logger) (dH *DBHandler, err error) {
dH = &DBHandler{logger: logger}
dbPath := filepath.Join(path, "user.db")
logger.Debug("NewDBHandler", "open database "+dbPath)
dH.db, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{})
return

View File

@@ -1,4 +1,4 @@
package accessmanager_test
package AccessHandler
import (
"bytes"
@@ -7,8 +7,7 @@ import (
"net/http/httptest"
"testing"
"gitea.tecamino.com/paadi/AccessHandler/handlers"
"gitea.tecamino.com/paadi/AccessHandler/models"
"gitea.tecamino.com/paadi/access-handler/models"
"github.com/gin-gonic/gin"
"github.com/go-playground/assert/v2"
@@ -18,7 +17,7 @@ func TestAccesshandlerLogin(t *testing.T) {
t.Log("start access handler test")
t.Log("initialize accessHandler")
accessHandler, err := handlers.NewAccessHandler("test.db", nil)
accessHandler, err := NewAccessHandler(".", nil)
if err != nil {
t.Fatal(err)
}
@@ -100,20 +99,20 @@ func TestLoginHandler(t *testing.T) {
gin.SetMode(gin.TestMode)
// Setup your AccessHandler and router
aH, err := handlers.NewAccessHandler("test.db", nil)
aH, err := NewAccessHandler(".", nil)
if err != nil {
t.Fatal(err)
}
r := gin.Default()
handlers.SetMiddlewareLogger(r, aH.GetLogger())
SetMiddlewareLogger(r, aH.GetLogger())
r.POST("/login", aH.Login)
r.POST("/login/refresh", aH.Refresh)
r.GET("/login/me", aH.Me)
r.GET("/logout", aH.Logout)
middleware := r.Group("", handlers.AuthMiddleware())
middleware := r.Group("", AuthMiddleware())
auth := middleware.Group("/members", aH.AuthorizeRole(""))
auth.GET("", func(ctx *gin.Context) {

2
go.mod
View File

@@ -1,4 +1,4 @@
module gitea.tecamino.com/paadi/AccessHandler
module gitea.tecamino.com/paadi/access-handler
go 1.24.5

View File

@@ -1,4 +1,4 @@
package handlers
package AccessHandler
import (
"fmt"
@@ -6,8 +6,8 @@ import (
"net/http"
"time"
"gitea.tecamino.com/paadi/AccessHandler/models"
"gitea.tecamino.com/paadi/AccessHandler/utils"
"gitea.tecamino.com/paadi/access-handler/models"
"gitea.tecamino.com/paadi/access-handler/utils"
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt/v5"

View File

@@ -1,4 +1,4 @@
package handlers
package AccessHandler
import (
"fmt"
@@ -27,7 +27,7 @@ import (
//
// Usage:
//
// handlers.SetMiddlewareLogger(router, logger)
// SetMiddlewareLogger(router, logger)
func SetMiddlewareLogger(r *gin.Engine, logger *logging.Logger) {
// Add middleware that injects logger into context
r.Use(func(c *gin.Context) {
@@ -55,7 +55,7 @@ func SetMiddlewareLogger(r *gin.Engine, logger *logging.Logger) {
//
// Usage:
//
// r.Use(handlers.AuthMiddleware())
// r.Use(AuthMiddleware())
func AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// Retrieve logger from Gin context

View File

@@ -1,9 +1,9 @@
package handlers
package AccessHandler
import (
"fmt"
"gitea.tecamino.com/paadi/AccessHandler/models"
"gitea.tecamino.com/paadi/access-handler/models"
)
// AddRoleTable

View File

@@ -1,10 +1,10 @@
package handlers
package AccessHandler
import (
"fmt"
"gitea.tecamino.com/paadi/AccessHandler/models"
"gitea.tecamino.com/paadi/AccessHandler/utils"
"gitea.tecamino.com/paadi/access-handler/models"
"gitea.tecamino.com/paadi/access-handler/utils"
)
// AddUserTable