Realm permission check

This commit is contained in:
2024-02-09 12:36:39 +08:00
parent 798e78ff8e
commit 012ee55c3a
6 changed files with 92 additions and 20 deletions

View File

@ -151,6 +151,15 @@ func NewPost(
var realmId *uint
if realm != nil {
if !realm.IsPublic {
var member models.RealmMember
if err := database.C.Where(&models.RealmMember{
RealmID: *realmId,
AccountID: user.ID,
}).First(&member).Error; err != nil {
return post, fmt.Errorf("you aren't a part of that realm")
}
}
realmId = &realm.ID
}

View File

@ -23,11 +23,15 @@ func ListRealmWithUser(user models.Account) ([]models.Realm, error) {
return realms, nil
}
func NewRealm(user models.Account, name, description string) (models.Realm, error) {
func NewRealm(user models.Account, name, description string, isPublic bool) (models.Realm, error) {
realm := models.Realm{
Name: name,
Description: description,
AccountID: user.ID,
IsPublic: isPublic,
Members: []models.RealmMember{
{AccountID: user.ID},
},
}
err := database.C.Save(&realm).Error
@ -35,9 +39,21 @@ func NewRealm(user models.Account, name, description string) (models.Realm, erro
return realm, err
}
func EditRealm(realm models.Realm, name, description string) (models.Realm, error) {
func InviteRealmMember(user models.Account, target models.Realm) error {
member := models.RealmMember{
RealmID: target.ID,
AccountID: user.ID,
}
err := database.C.Save(&member).Error
return err
}
func EditRealm(realm models.Realm, name, description string, isPublic bool) (models.Realm, error) {
realm.Name = name
realm.Description = description
realm.IsPublic = isPublic
err := database.C.Save(&realm).Error