Let channels configure whether to permit photos

This commit is contained in:
Noah 2024-05-13 18:51:54 -07:00
parent 745c282650
commit 747f4fd5d4
3 changed files with 22 additions and 12 deletions

View File

@ -13,7 +13,7 @@ import (
// Version of the config format - when new fields are added, it will attempt // Version of the config format - when new fields are added, it will attempt
// to write the settings.toml to disk so new defaults populate. // to write the settings.toml to disk so new defaults populate.
var currentVersion = 11 var currentVersion = 12
// Config for your BareRTC app. // Config for your BareRTC app.
type Config struct { type Config struct {
@ -98,6 +98,7 @@ type Channel struct {
Name string // Like "Main Chat Room" Name string // Like "Main Chat Room"
Icon string `toml:",omitempty"` // CSS class names for room icon (optional) Icon string `toml:",omitempty"` // CSS class names for room icon (optional)
VIP bool // For VIP users only VIP bool // For VIP users only
PermitPhotos bool // photos are allowed to be shared
// ChatServer messages to send to the user immediately upon connecting. // ChatServer messages to send to the user immediately upon connecting.
WelcomeMessages []string WelcomeMessages []string
@ -151,11 +152,13 @@ func DefaultConfig() Config {
WelcomeMessages: []string{ WelcomeMessages: []string{
"Welcome to the Off Topic channel!", "Welcome to the Off Topic channel!",
}, },
PermitPhotos: true,
}, },
{ {
ID: "vip", ID: "vip",
Name: "VIPs Only", Name: "VIPs Only",
VIP: true, VIP: true,
PermitPhotos: true,
WelcomeMessages: []string{ WelcomeMessages: []string{
"This channel is only for operators and VIPs.", "This channel is only for operators and VIPs.",
}, },

View File

@ -544,7 +544,7 @@ func (s *Server) SendWhoList() {
// VIP flags: if we are in MutuallySecret mode, only VIPs can see // VIP flags: if we are in MutuallySecret mode, only VIPs can see
// other VIP flags on the Who List. // other VIP flags on the Who List.
if config.Current.VIP.MutuallySecret { if config.Current.VIP.MutuallySecret {
if sub.IsVIP() || sub.IsAdmin() { if sub.IsVIP() {
who.VIP = user.JWTClaims.VIP who.VIP = user.JWTClaims.VIP
} }
} else { } else {

View File

@ -631,10 +631,17 @@ export default {
return status === null || status.name !== "online"; return status === null || status.name !== "online";
}, },
canUploadFile() { canUploadFile() {
// Public channels: OK // Public channels: check whether it PermitsPhotos.
if (!this.channel.indexOf('@') === 0) { if (!this.isDM) {
for (let cfg of this.config.channels) {
if (cfg.ID === this.channel && cfg.PermitPhotos) {
return true; return true;
} }
}
// By default: channels do not permit photos.
return false;
}
// User is an admin? // User is an admin?
if (this.jwt.claims.op) { if (this.jwt.claims.op) {