package common import ( "errors" "log" "github.com/gofiber/fiber/v2" _ "github.com/mattn/go-sqlite3" "github.com/gofiber/fiber/v2/middleware/session" "MY/webapp/data" "MY/webapp/config" ) func IsAdmin(user *data.User) bool { return user.Username == config.Settings.Server.Admin } func AuthCheck(c *fiber.Ctx, needs_admin bool) (*session.Session, error) { sess, err := STORE.Get(c) if err != nil { return sess, err } // BUG: this has to come from the databse, just temporary admin := sess.Get("admin") == true authed := sess.Get("authenticated") == true if needs_admin { authed = admin && authed log.Printf("after needs_admin block: authed=%v", authed) } if authed { log.Println("user is authed, return nil and sess") return sess, nil } else { log.Println("user is NOT authed, return error") return sess, errors.New("Authentication, permission failure") } }