♻️ Use the new dealer BaseUser and remove ExternalID
This commit is contained in:
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.solsynth.dev/hydrogen/dealer/pkg/hyper"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/database"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/gap"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
|
||||
@ -82,7 +83,7 @@ func createArticle(c *fiber.Ctx) error {
|
||||
if data.RealmAlias != nil {
|
||||
if realm, err := services.GetRealmWithAlias(*data.RealmAlias); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if _, err = services.GetRealmMember(realm.ExternalID, user.ExternalID); err != nil {
|
||||
} else if _, err = services.GetRealmMember(realm.ID, user.ID); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("unable to post in the realm, access denied: %v", err))
|
||||
} else {
|
||||
item.RealmID = &realm.ID
|
||||
@ -129,7 +130,7 @@ func editArticle(c *fiber.Ctx) error {
|
||||
|
||||
var item models.Post
|
||||
if err := database.C.Where(models.Post{
|
||||
BaseModel: models.BaseModel{ID: uint(id)},
|
||||
BaseModel: hyper.BaseModel{ID: uint(id)},
|
||||
AuthorID: user.ID,
|
||||
}).First(&item).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
@ -179,7 +180,7 @@ func editArticle(c *fiber.Ctx) error {
|
||||
if data.RealmAlias != nil {
|
||||
if realm, err := services.GetRealmWithAlias(*data.RealmAlias); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if _, err = services.GetRealmMember(realm.ExternalID, user.ExternalID); err != nil {
|
||||
} else if _, err = services.GetRealmMember(realm.ID, user.ID); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("unable to post in the realm, access denied: %v", err))
|
||||
} else {
|
||||
item.RealmID = &realm.ID
|
||||
|
@ -2,7 +2,6 @@ package api
|
||||
|
||||
import (
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/gap"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/server/exts"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/services"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
@ -29,13 +28,9 @@ func listCategories(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
func newCategory(c *fiber.Ctx) error {
|
||||
if err := gap.H.EnsureAuthenticated(c); err != nil {
|
||||
if err := gap.H.EnsureGrantedPerm(c, "CreatePostCategories", true); err != nil {
|
||||
return err
|
||||
}
|
||||
user := c.Locals("user").(models.Account)
|
||||
if user.PowerLevel <= 55 {
|
||||
return fiber.NewError(fiber.StatusForbidden, "require power level 55 to create categories")
|
||||
}
|
||||
|
||||
var data struct {
|
||||
Alias string `json:"alias" validate:"required"`
|
||||
@ -56,13 +51,9 @@ func newCategory(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
func editCategory(c *fiber.Ctx) error {
|
||||
if err := gap.H.EnsureAuthenticated(c); err != nil {
|
||||
if err := gap.H.EnsureGrantedPerm(c, "CreatePostCategories", true); err != nil {
|
||||
return err
|
||||
}
|
||||
user := c.Locals("user").(models.Account)
|
||||
if user.PowerLevel <= 55 {
|
||||
return fiber.NewError(fiber.StatusForbidden, "require power level 55 to edit categories")
|
||||
}
|
||||
|
||||
id, _ := c.ParamsInt("categoryId", 0)
|
||||
category, err := services.GetCategoryWithID(uint(id))
|
||||
@ -89,13 +80,9 @@ func editCategory(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
func deleteCategory(c *fiber.Ctx) error {
|
||||
if err := gap.H.EnsureAuthenticated(c); err != nil {
|
||||
if err := gap.H.EnsureGrantedPerm(c, "CreatePostCategories", true); err != nil {
|
||||
return err
|
||||
}
|
||||
user := c.Locals("user").(models.Account)
|
||||
if user.PowerLevel <= 55 {
|
||||
return fiber.NewError(fiber.StatusForbidden, "require power level 55 to delete categories")
|
||||
}
|
||||
|
||||
id, _ := c.ParamsInt("categoryId", 0)
|
||||
category, err := services.GetCategoryWithID(uint(id))
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"git.solsynth.dev/hydrogen/dealer/pkg/hyper"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/database"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/gap"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
|
||||
@ -72,7 +73,7 @@ func listPost(c *fiber.Ctx) error {
|
||||
|
||||
if len(c.Query("author")) > 0 {
|
||||
var author models.Account
|
||||
if err := database.C.Where(&models.Account{Name: c.Query("author")}).First(&author).Error; err != nil {
|
||||
if err := database.C.Where(&hyper.BaseUser{Name: c.Query("author")}).First(&author).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
tx = tx.Where("author_id = ?", author.ID)
|
||||
@ -125,7 +126,7 @@ func listPostMinimal(c *fiber.Ctx) error {
|
||||
|
||||
if len(c.Query("author")) > 0 {
|
||||
var author models.Account
|
||||
if err := database.C.Where(&models.Account{Name: c.Query("author")}).First(&author).Error; err != nil {
|
||||
if err := database.C.Where(&hyper.BaseUser{Name: c.Query("author")}).First(&author).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
tx = tx.Where("author_id = ?", author.ID)
|
||||
@ -191,7 +192,7 @@ func deletePost(c *fiber.Ctx) error {
|
||||
|
||||
var item models.Post
|
||||
if err := database.C.Where(models.Post{
|
||||
BaseModel: models.BaseModel{ID: uint(id)},
|
||||
BaseModel: hyper.BaseModel{ID: uint(id)},
|
||||
AuthorID: user.ID,
|
||||
}).First(&item).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
|
@ -3,6 +3,7 @@ package api
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.solsynth.dev/hydrogen/dealer/pkg/hyper"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/database"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/services"
|
||||
@ -23,7 +24,7 @@ func listPostReplies(c *fiber.Ctx) error {
|
||||
|
||||
if len(c.Query("author")) > 0 {
|
||||
var author models.Account
|
||||
if err := database.C.Where(&models.Account{Name: c.Query("author")}).First(&author).Error; err != nil {
|
||||
if err := database.C.Where(&hyper.BaseUser{Name: c.Query("author")}).First(&author).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
}
|
||||
tx = tx.Where("author_id = ?", author.ID)
|
||||
|
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.solsynth.dev/hydrogen/dealer/pkg/hyper"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/database"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/gap"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
|
||||
@ -101,7 +102,7 @@ func createStory(c *fiber.Ctx) error {
|
||||
if data.RealmAlias != nil {
|
||||
if realm, err := services.GetRealmWithAlias(*data.RealmAlias); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if _, err = services.GetRealmMember(realm.ExternalID, user.ExternalID); err != nil {
|
||||
} else if _, err = services.GetRealmMember(realm.ID, user.ID); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("unable to post in the realm, access denied: %v", err))
|
||||
} else {
|
||||
item.RealmID = &realm.ID
|
||||
@ -148,7 +149,7 @@ func editStory(c *fiber.Ctx) error {
|
||||
|
||||
var item models.Post
|
||||
if err := database.C.Where(models.Post{
|
||||
BaseModel: models.BaseModel{ID: uint(id)},
|
||||
BaseModel: hyper.BaseModel{ID: uint(id)},
|
||||
AuthorID: user.ID,
|
||||
}).First(&item).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||
@ -198,7 +199,7 @@ func editStory(c *fiber.Ctx) error {
|
||||
if data.RealmAlias != nil {
|
||||
if realm, err := services.GetRealmWithAlias(*data.RealmAlias); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if _, err = services.GetRealmMember(realm.ExternalID, user.ExternalID); err != nil {
|
||||
} else if _, err = services.GetRealmMember(realm.ID, user.ID); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("unable to post in the realm, access denied: %v", err))
|
||||
} else {
|
||||
item.RealmID = &realm.ID
|
||||
|
@ -1,6 +1,7 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"git.solsynth.dev/hydrogen/dealer/pkg/hyper"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/database"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/gap"
|
||||
"git.solsynth.dev/hydrogen/interactive/pkg/internal/models"
|
||||
@ -16,7 +17,7 @@ func getUserinfo(c *fiber.Ctx) error {
|
||||
|
||||
var data models.Account
|
||||
if err := database.C.
|
||||
Where(&models.Account{BaseModel: models.BaseModel{ID: user.ID}}).
|
||||
Where(&hyper.BaseModel{ID: user.ID}).
|
||||
First(&data).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
}
|
||||
@ -29,7 +30,7 @@ func getOthersInfo(c *fiber.Ctx) error {
|
||||
|
||||
var data models.Account
|
||||
if err := database.C.
|
||||
Where(&models.Account{Name: account}).
|
||||
Where(&hyper.BaseUser{Name: account}).
|
||||
First(&data).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
}
|
||||
@ -42,7 +43,7 @@ func listOthersPinnedPost(c *fiber.Ctx) error {
|
||||
|
||||
var user models.Account
|
||||
if err := database.C.
|
||||
Where(&models.Account{Name: account}).
|
||||
Where(&hyper.BaseUser{Name: account}).
|
||||
First(&user).Error; err != nil {
|
||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||
}
|
||||
|
Reference in New Issue
Block a user