mirror of
https://github.com/Fishwaldo/mouthpiece.git
synced 2025-03-15 11:31:32 +00:00
casbin model is stored as embeded file
This commit is contained in:
parent
8c076d3878
commit
f2650dd8c0
2 changed files with 27 additions and 7 deletions
|
@ -6,9 +6,11 @@ import (
|
|||
"context"
|
||||
"crypto/sha1"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"net/http"
|
||||
"os"
|
||||
// "strings"
|
||||
|
||||
// "strings"
|
||||
|
||||
dbauth "github.com/Fishwaldo/mouthpiece/internal/auth/db"
|
||||
telegramauth "github.com/Fishwaldo/mouthpiece/internal/auth/telegram"
|
||||
|
@ -23,6 +25,7 @@ import (
|
|||
"github.com/go-pkgz/auth/token"
|
||||
|
||||
"github.com/casbin/casbin/v2"
|
||||
"github.com/casbin/casbin/v2/model"
|
||||
"github.com/casbin/casbin/v2/util"
|
||||
|
||||
//"github.com/casbin/casbin/v2/log"
|
||||
|
@ -53,6 +56,7 @@ type AuthConfig struct {
|
|||
MapClaimsToUser token.ClaimsUpdFunc
|
||||
Validator token.ValidatorFunc
|
||||
Host string
|
||||
ConfigDir fs.FS
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
@ -207,25 +211,34 @@ func InitAuth(Config AuthConfig) {
|
|||
Log.Error(nil, "Telegram auth is enabled but token is not set")
|
||||
}
|
||||
}
|
||||
InitCasbin()
|
||||
InitCasbin(Config)
|
||||
Log.Info("Auth service started")
|
||||
}
|
||||
func InitCasbin() {
|
||||
func InitCasbin(config AuthConfig) {
|
||||
cdb, err := gormadapter.NewAdapterByDB(db.Db)
|
||||
if err != nil {
|
||||
Log.Error(err, "Failed to Setup Casbin Auth Adapter")
|
||||
}
|
||||
|
||||
AuthService.AuthEnforcer, err = casbin.NewEnforcer("config/auth_model.conf", cdb)
|
||||
casbinmodel, err := fs.ReadFile(config.ConfigDir, "config/auth_model.conf")
|
||||
if err != nil {
|
||||
Log.Error(err, "Failed to read casbin model")
|
||||
}
|
||||
m, err := model.NewModelFromString(string(casbinmodel))
|
||||
if err != nil {
|
||||
Log.Error(err, "Failed to parse casbin model")
|
||||
}
|
||||
AuthService.AuthEnforcer, err = casbin.NewEnforcer(m, cdb)
|
||||
if err != nil {
|
||||
Log.Error(err, "Failed to setup Casbin")
|
||||
}
|
||||
|
||||
AuthService.AuthEnforcer.EnableLog(viper.GetBool("auth.debug"))
|
||||
AuthService.AuthEnforcer.EnableAutoSave(true)
|
||||
AuthService.AuthEnforcer.SetRoleManager(defaultrolemanager.NewRoleManager(10))
|
||||
if err := AuthService.AuthEnforcer.LoadModel(); err != nil {
|
||||
Log.Error(err, "Failed to load Casbin model")
|
||||
}
|
||||
//if err := AuthService.AuthEnforcer.LoadModel(); err != nil {
|
||||
// Log.Error(err, "Failed to load Casbin model")
|
||||
//}
|
||||
|
||||
if err := AuthService.AuthEnforcer.LoadPolicy(); err != nil {
|
||||
Log.Error(err, "Failed to Load Casbin Policy")
|
||||
|
|
7
main.go
7
main.go
|
@ -37,6 +37,7 @@ import (
|
|||
"encoding/json"
|
||||
"os"
|
||||
"runtime/debug"
|
||||
"embed"
|
||||
|
||||
"github.com/Fishwaldo/mouthpiece/frontend"
|
||||
_ "github.com/Fishwaldo/mouthpiece/frontend"
|
||||
|
@ -65,6 +66,11 @@ import (
|
|||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
|
||||
//go:embed config
|
||||
var ConfigFiles embed.FS
|
||||
|
||||
|
||||
func init() {
|
||||
viper.SetDefault("frontend.path", "frontend/dist")
|
||||
viper.SetDefault("frontend.external", false)
|
||||
|
@ -154,6 +160,7 @@ func main() {
|
|||
humucli.GatewayBasicAuth("basic")
|
||||
|
||||
user.AuthConfig.Host = fmt.Sprintf("http://arm64-1.dmz.dynam.ac:%v", viper.Get("Port"))
|
||||
user.AuthConfig.ConfigDir = ConfigFiles
|
||||
auth.InitAuth(user.AuthConfig)
|
||||
m := auth.AuthService.Service.Middleware()
|
||||
p := middleware.Middleware{}
|
||||
|
|
Loading…
Add table
Reference in a new issue