summaryrefslogtreecommitdiff
path: root/internal/server/api/api.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-01-13 18:38:17 +0200
committerKyren223 <Kyren223@proton.me>2025-01-13 18:38:17 +0200
commitbad60b37d0fe3100f3898bfd6a860ea4aa87256f (patch)
treebf2ca3b9582976f8872aab62672a4396c6a0dc95 /internal/server/api/api.go
parentc692883267fd3a69a6caf270328b081b1ba7d471 (diff)
Added frequency propagation on the server-side and fixed a bug where
permission 3 would be valid even though it's not
Diffstat (limited to 'internal/server/api/api.go')
-rw-r--r--internal/server/api/api.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go
index df29448..588e81f 100644
--- a/internal/server/api/api.go
+++ b/internal/server/api/api.go
@@ -329,7 +329,7 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
return &packet.Error{Error: err}
}
- if request.Perms < 0 || request.Perms > packet.PermMax {
+ if request.Perms < 0 || request.Perms >= packet.PermMax {
return &packet.Error{Error: fmt.Sprintf(
"exceeded allowed perms value: 0 <= perms < %v", packet.PermMax,
)}
@@ -347,11 +347,11 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
return &ErrInternalError
}
- return &packet.FrequenciesInfo{
+ return NetworkPropagate(ctx, sess, request.Network, &packet.FrequenciesInfo{
RemovedFrequencies: nil,
Frequencies: []data.Frequency{frequency},
Network: request.Network,
- }
+ })
}
func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet.SwapFrequencies) packet.Payload {
@@ -379,11 +379,11 @@ func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet
return &ErrInternalError
}
- return &packet.SwapFrequencies{
+ return NetworkPropagate(ctx, sess, request.Network, &packet.SwapFrequencies{
Network: request.Network,
Pos1: request.Pos1,
Pos2: request.Pos2,
- }
+ })
}
func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet.DeleteFrequency) packet.Payload {
@@ -402,7 +402,7 @@ func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet
// Authentication
isAdmin, err := IsNetworkAdmin(ctx, queries, sess.ID(), frequency.NetworkID)
if err == sql.ErrNoRows {
- return &packet.Error{Error: "either user or network don't exist"}
+ return &ErrPermissionDenied // User not in network
}
if err != nil {
log.Println("database error 2:", err)
@@ -428,11 +428,11 @@ func DeleteFrequency(ctx context.Context, sess *session.Session, request *packet
return &ErrInternalError
}
- return &packet.FrequenciesInfo{
+ return NetworkPropagate(ctx, sess, frequency.NetworkID, &packet.FrequenciesInfo{
RemovedFrequencies: []snowflake.ID{frequency.ID},
Frequencies: nil,
Network: frequency.NetworkID,
- }
+ })
}
func DeleteNetwork(ctx context.Context, sess *session.Session, request *packet.DeleteNetwork) packet.Payload {