mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-24 11:13:33 -06:00
[feature] Allow users to set custom css for their profiles + threads (#808)
* add custom css account property + db func to fetch * allow account to get/set custom css * serve custom css for an account * go fmt * use monospace for customcss, add link * add custom css to account cache * fix broken field * add custom css docs to user guide * add `accounts-allow-custom-css` config flag * add allow custom css to /api/v1/instance response * only show/set custom css if allowed to do so * only set/serve custom account css if enabled * update swagger docs * chain promise * make bool a bit clearer * use cache for GetAccountCustomCSSByUsername
This commit is contained in:
parent
268f252e0d
commit
b42469e4e0
40 changed files with 458 additions and 39 deletions
|
|
@ -73,6 +73,7 @@ type Configuration struct {
|
|||
AccountsRegistrationOpen bool `name:"accounts-registration-open" usage:"Allow anyone to submit an account signup request. If false, server will be invite-only."`
|
||||
AccountsApprovalRequired bool `name:"accounts-approval-required" usage:"Do account signups require approval by an admin or moderator before user can log in? If false, new registrations will be automatically approved."`
|
||||
AccountsReasonRequired bool `name:"accounts-reason-required" usage:"Do new account signups require a reason to be submitted on registration?"`
|
||||
AccountsAllowCustomCSS bool `name:"accounts-allow-custom-css" usage:"Allow accounts to enable custom CSS for their profile pages and statuses."`
|
||||
|
||||
MediaImageMaxSize int `name:"media-image-max-size" usage:"Max size of accepted images in bytes"`
|
||||
MediaVideoMaxSize int `name:"media-video-max-size" usage:"Max size of accepted videos in bytes"`
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ var Defaults = Configuration{
|
|||
AccountsRegistrationOpen: true,
|
||||
AccountsApprovalRequired: true,
|
||||
AccountsReasonRequired: true,
|
||||
AccountsAllowCustomCSS: false,
|
||||
|
||||
MediaImageMaxSize: 10485760, // 10mb
|
||||
MediaVideoMaxSize: 41943040, // 40mb
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ func AddServerFlags(cmd *cobra.Command) {
|
|||
cmd.Flags().Bool(AccountsRegistrationOpenFlag(), cfg.AccountsRegistrationOpen, fieldtag("AccountsRegistrationOpen", "usage"))
|
||||
cmd.Flags().Bool(AccountsApprovalRequiredFlag(), cfg.AccountsApprovalRequired, fieldtag("AccountsApprovalRequired", "usage"))
|
||||
cmd.Flags().Bool(AccountsReasonRequiredFlag(), cfg.AccountsReasonRequired, fieldtag("AccountsReasonRequired", "usage"))
|
||||
cmd.Flags().Bool(AccountsAllowCustomCSSFlag(), cfg.AccountsAllowCustomCSS, fieldtag("AccountsAllowCustomCSS", "usage"))
|
||||
|
||||
// Media
|
||||
cmd.Flags().Int(MediaImageMaxSizeFlag(), cfg.MediaImageMaxSize, fieldtag("MediaImageMaxSize", "usage"))
|
||||
|
|
|
|||
|
|
@ -668,6 +668,31 @@ func GetAccountsReasonRequired() bool { return global.GetAccountsReasonRequired(
|
|||
// SetAccountsReasonRequired safely sets the value for global configuration 'AccountsReasonRequired' field
|
||||
func SetAccountsReasonRequired(v bool) { global.SetAccountsReasonRequired(v) }
|
||||
|
||||
// GetAccountsAllowCustomCSS safely fetches the Configuration value for state's 'AccountsAllowCustomCSS' field
|
||||
func (st *ConfigState) GetAccountsAllowCustomCSS() (v bool) {
|
||||
st.mutex.Lock()
|
||||
v = st.config.AccountsAllowCustomCSS
|
||||
st.mutex.Unlock()
|
||||
return
|
||||
}
|
||||
|
||||
// SetAccountsAllowCustomCSS safely sets the Configuration value for state's 'AccountsAllowCustomCSS' field
|
||||
func (st *ConfigState) SetAccountsAllowCustomCSS(v bool) {
|
||||
st.mutex.Lock()
|
||||
defer st.mutex.Unlock()
|
||||
st.config.AccountsAllowCustomCSS = v
|
||||
st.reloadToViper()
|
||||
}
|
||||
|
||||
// AccountsAllowCustomCSSFlag returns the flag name for the 'AccountsAllowCustomCSS' field
|
||||
func AccountsAllowCustomCSSFlag() string { return "accounts-allow-custom-css" }
|
||||
|
||||
// GetAccountsAllowCustomCSS safely fetches the value for global configuration 'AccountsAllowCustomCSS' field
|
||||
func GetAccountsAllowCustomCSS() bool { return global.GetAccountsAllowCustomCSS() }
|
||||
|
||||
// SetAccountsAllowCustomCSS safely sets the value for global configuration 'AccountsAllowCustomCSS' field
|
||||
func SetAccountsAllowCustomCSS(v bool) { global.SetAccountsAllowCustomCSS(v) }
|
||||
|
||||
// GetMediaImageMaxSize safely fetches the Configuration value for state's 'MediaImageMaxSize' field
|
||||
func (st *ConfigState) GetMediaImageMaxSize() (v int) {
|
||||
st.mutex.Lock()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue