diff --git a/internal/AppContext.go b/internal/AppContext.go index eb6e5f1..3d2b100 100644 --- a/internal/AppContext.go +++ b/internal/AppContext.go @@ -10,7 +10,7 @@ import ( type AppContext struct { Db *gorm.DB PostService *services.PostService - UserService *services.UserService + AdminPassword string Instance string Tag string } \ No newline at end of file diff --git a/internal/helpers/SetupAppContext.go b/internal/helpers/SetupAppContext.go index 6bc6822..ec2188c 100644 --- a/internal/helpers/SetupAppContext.go +++ b/internal/helpers/SetupAppContext.go @@ -3,6 +3,7 @@ package helpers import ( "CatsOfMastodonBotGo/internal" "CatsOfMastodonBotGo/internal/services" + "log" "os" "gorm.io/driver/sqlite" @@ -12,14 +13,19 @@ import ( func SetupAppContext() *internal.AppContext { // Setup AppContext - instance := os.Getenv("INSTANCE") + instance := os.Getenv("CAOM_INSTANCE") if instance == "" { instance = "https://mstdn.party" } - tag := os.Getenv("TAG") + tag := os.Getenv("CAOM_TAG") if tag == "" { tag = "catsofmastodon" } + adminPassword := os.Getenv("CAOM_ADMIN_PASSWORD") + if adminPassword == "" { + log.Println("No admin password provided, using default password 'catsaregood'") + adminPassword = "catsaregood" + } // Setup database db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{Logger: logger.Default.LogMode(logger.Warn)}) @@ -31,14 +37,10 @@ func SetupAppContext() *internal.AppContext { //Setup PostService var postService = services.NewPostService(db) - // Setup UserService - var userService = services.NewUserService(db) - // Inititlize AppContext var appContext = &internal.AppContext{ Db: db, PostService: postService, - UserService: userService, Instance: instance, Tag: tag, } diff --git a/internal/models/requestModels/login.go b/internal/models/requestModels/login.go index fe79a0b..55b5c2b 100644 --- a/internal/models/requestModels/login.go +++ b/internal/models/requestModels/login.go @@ -1,6 +1,5 @@ package requestmodels type LoginInput struct { - Username string `json:"username" binding:"required"` Password string `json:"password" binding:"required"` } \ No newline at end of file diff --git a/internal/models/requestModels/register.go b/internal/models/requestModels/register.go deleted file mode 100644 index e810410..0000000 --- a/internal/models/requestModels/register.go +++ /dev/null @@ -1,6 +0,0 @@ -package requestmodels - -type RegisterInput struct { - Username string `json:"username" binding:"required"` - Password string `json:"password" binding:"required"` -} \ No newline at end of file diff --git a/internal/server/router.go b/internal/server/router.go index ae287d5..b6d2c42 100644 --- a/internal/server/router.go +++ b/internal/server/router.go @@ -19,7 +19,6 @@ func SetupRouter(appContext *internal.AppContext) *gin.Engine { admin := r.Group("/admin") admin.GET("/", adminDashboardHandler.AdminHomePage) - admin.POST("/register", adminDashboardHandler.Register) admin.POST("/login", adminDashboardHandler.Login) admin.POST("/approve", adminDashboardHandler.ApproveMedia) admin.POST("/reject", adminDashboardHandler.RejectMedia) diff --git a/internal/services/userService.go b/internal/services/userService.go deleted file mode 100644 index 37040ee..0000000 --- a/internal/services/userService.go +++ /dev/null @@ -1,24 +0,0 @@ -package services - -import ( - "CatsOfMastodonBotGo/internal/models" - "gorm.io/gorm" -) - -type UserService struct { - db *gorm.DB -} - -func NewUserService(db *gorm.DB) *UserService { - return &UserService{db: db} -} - -func (us *UserService) CreateUser(user models.ComUser) int { - return int(us.db.Create(&user).RowsAffected) -} - -func (us *UserService) GetUserByUsername(username string) models.ComUser { - var user models.ComUser - us.db.Where("username = ?", username).First(&user) - return user -} \ No newline at end of file diff --git a/internal/web/handlers/admin/adminDash.go b/internal/web/handlers/admin/adminDash.go index a8978ab..a8e54df 100644 --- a/internal/web/handlers/admin/adminDash.go +++ b/internal/web/handlers/admin/adminDash.go @@ -2,10 +2,9 @@ package handlers_admin import ( "CatsOfMastodonBotGo/internal" - "CatsOfMastodonBotGo/internal/models" - requestmodels "CatsOfMastodonBotGo/internal/models/requestModels" "net/http" - "CatsOfMastodonBotGo/internal/auth" + + requestmodels "CatsOfMastodonBotGo/internal/models/requestModels" "github.com/gin-gonic/gin" ) @@ -38,36 +37,6 @@ func (appContext *AdminDashboardHandler) RejectMedia(c *gin.Context) { }) } -func (appContext *AdminDashboardHandler) Register(c *gin.Context) { - - var input requestmodels.RegisterInput - - if err := c.ShouldBindJSON(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } - - hashedPassword, err := auth.HashPassword(input.Password) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } - var user = models.ComUser{ - Username: input.Username, - Password: hashedPassword, - } - if appContext.AppContext.UserService.CreateUser(user) == 0 { - c.JSON(http.StatusBadRequest, gin.H{ - "success": false, - "error": "failed to create user", - }) - } else { - c.JSON(200, gin.H{ - "success": true, - }) - } -} - func (appContext *AdminDashboardHandler) Login(c *gin.Context) { var input requestmodels.LoginInput @@ -77,14 +46,10 @@ func (appContext *AdminDashboardHandler) Login(c *gin.Context) { return } - var user = appContext.AppContext.UserService.GetUserByUsername(input.Username) - if auth.CheckPasswordHash(input.Password, user.Password) && user.IsVerified { // TODO: Add verification process + if input.Password == appContext.AppContext.AdminPassword { c.JSON(200, gin.H{ - "success": true, - }) - } else { - c.JSON(200, gin.H{ - "success": false, + "YouAreOn": "AdminDashboardHomePage", }) } + }