mirror of
https://github.com/Kyren223/eko.git
synced 2026-07-11 06:49:30 +00:00
Minor improvements to server code
This commit is contained in:
@@ -251,11 +251,7 @@ func SwapUserNetworks(ctx context.Context, sess *session.Session, request *packe
|
||||
func CreateFrequency(ctx context.Context, sess *session.Session, request *packet.CreateFrequency) packet.Payload {
|
||||
queries := data.New(db)
|
||||
|
||||
// Check if authorized
|
||||
userNetwork, err := queries.GetUserNetwork(ctx, data.GetUserNetworkParams{
|
||||
UserID: sess.ID(),
|
||||
NetworkID: request.Network,
|
||||
})
|
||||
isAdmin, err := IsNetworkAdmin(ctx, queries, sess.ID(), request.Network)
|
||||
if err == sql.ErrNoRows {
|
||||
return &packet.Error{Error: "either user or network don't exist"}
|
||||
}
|
||||
@@ -263,7 +259,7 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
|
||||
log.Println("database error 1:", err)
|
||||
return &ErrInternalError
|
||||
}
|
||||
if !userNetwork.IsAdmin || !userNetwork.IsMember || userNetwork.IsBanned {
|
||||
if !isAdmin {
|
||||
return &ErrPermissionDenied
|
||||
}
|
||||
|
||||
@@ -307,11 +303,7 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
|
||||
func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet.SwapFrequencies) packet.Payload {
|
||||
queries := data.New(db)
|
||||
|
||||
// Check if authorized
|
||||
userNetwork, err := queries.GetUserNetwork(ctx, data.GetUserNetworkParams{
|
||||
UserID: sess.ID(),
|
||||
NetworkID: request.Network,
|
||||
})
|
||||
isAdmin, err := IsNetworkAdmin(ctx, queries, sess.ID(), request.Network)
|
||||
if err == sql.ErrNoRows {
|
||||
return &packet.Error{Error: "either user or network don't exist"}
|
||||
}
|
||||
@@ -319,7 +311,7 @@ func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet
|
||||
log.Println("database error 1:", err)
|
||||
return &ErrInternalError
|
||||
}
|
||||
if !userNetwork.IsAdmin || !userNetwork.IsMember || userNetwork.IsBanned {
|
||||
if !isAdmin {
|
||||
return &ErrPermissionDenied
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/kyren223/eko/internal/data"
|
||||
"github.com/kyren223/eko/pkg/snowflake"
|
||||
)
|
||||
|
||||
const hex = "0123456789abcdefABCDEF"
|
||||
@@ -23,3 +27,16 @@ func isValidHexColor(color string) (bool, string) {
|
||||
|
||||
return true, ""
|
||||
}
|
||||
|
||||
func IsNetworkAdmin(ctx context.Context, queries *data.Queries, userId, networkId snowflake.ID) (bool, error) {
|
||||
userNetwork, err := queries.GetUserNetwork(ctx, data.GetUserNetworkParams{
|
||||
UserID: userId,
|
||||
NetworkID: networkId,
|
||||
})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
isAdmin := userNetwork.IsAdmin && userNetwork.IsMember && !userNetwork.IsBanned
|
||||
return isAdmin, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user