mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 07:42:26 -05:00 
			
		
		
		
	[feature] Allow editing domain blocks/allows, fix comment import (#3967)
* start implementing editing of existing domain permissions * [feature] Allow editing domain blocks/allows, fix comment import * [bugfix] Use "comment" via /api/v1/instance * fix the stuff
This commit is contained in:
		
					parent
					
						
							
								db4b857159
							
						
					
				
			
			
				commit
				
					
						b184432331
					
				
			
		
					 32 changed files with 1021 additions and 313 deletions
				
			
		|  | @ -40,39 +40,19 @@ function importEntriesProcessor(formData: ImportDomainPermsParams): (_entry: Dom | |||
| 
 | ||||
| 	// Override each obfuscate entry if necessary.
 | ||||
| 	if (formData.obfuscate !== undefined) { | ||||
| 		const obfuscateEntry = (entry: DomainPerm) => { | ||||
| 		processingFuncs.push((entry: DomainPerm) => { | ||||
| 			entry.obfuscate = formData.obfuscate; | ||||
| 		}; | ||||
| 		processingFuncs.push(obfuscateEntry); | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	// Check whether we need to append or replace
 | ||||
| 	// private_comment and public_comment.
 | ||||
| 	// Check whether we need to replace
 | ||||
| 	// private_comment and/or public_comment.
 | ||||
| 	["private_comment","public_comment"].forEach((commentType) => { | ||||
| 		let text = formData.commentType?.trim(); | ||||
| 		if (!text) { | ||||
| 			return; | ||||
| 		} | ||||
| 
 | ||||
| 		switch(formData[`${commentType}_behavior`]) { | ||||
| 			case "append": | ||||
| 				const appendComment = (entry: DomainPerm) => { | ||||
| 					if (entry.commentType == undefined) { | ||||
| 						entry.commentType = text; | ||||
| 					} else { | ||||
| 						entry.commentType = [entry.commentType, text].join("\n"); | ||||
| 					} | ||||
| 				}; | ||||
| 
 | ||||
| 				processingFuncs.push(appendComment); | ||||
| 				break; | ||||
| 			case "replace": | ||||
| 				const replaceComment = (entry: DomainPerm) => { | ||||
| 					entry.commentType = text; | ||||
| 				}; | ||||
| 
 | ||||
| 				processingFuncs.push(replaceComment); | ||||
| 				break; | ||||
| 		if (formData[`replace_${commentType}`]) { | ||||
| 			const text = formData[commentType]?.trim(); | ||||
| 			processingFuncs.push((entry: DomainPerm) => { | ||||
| 				entry[commentType] = text; | ||||
| 			}); | ||||
| 		} | ||||
| 	}); | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ import { gtsApi } from "../../gts-api"; | |||
| import { | ||||
| 	replaceCacheOnMutation, | ||||
| 	removeFromCacheOnMutation, | ||||
| 	updateCacheOnMutation, | ||||
| } from "../../query-modifiers"; | ||||
| import { listToKeyedObject } from "../../transforms"; | ||||
| import type { | ||||
|  | @ -55,6 +56,36 @@ const extended = gtsApi.injectEndpoints({ | |||
| 			...replaceCacheOnMutation("domainAllows") | ||||
| 		}), | ||||
| 
 | ||||
| 		updateDomainBlock: build.mutation<DomainPerm, any>({ | ||||
| 			query: ({ id, ...formData}) => ({ | ||||
| 				method: "PUT", | ||||
| 				url: `/api/v1/admin/domain_blocks/${id}`, | ||||
| 				asForm: true, | ||||
| 				body: formData, | ||||
| 				discardEmpty: false | ||||
| 			}), | ||||
| 			...updateCacheOnMutation("domainBlocks", { | ||||
| 				key: (_draft, newData) => { | ||||
| 					return newData.domain; | ||||
| 				} | ||||
| 			}) | ||||
| 		}), | ||||
| 
 | ||||
| 		updateDomainAllow: build.mutation<DomainPerm, any>({ | ||||
| 			query: ({ id, ...formData}) => ({ | ||||
| 				method: "PUT", | ||||
| 				url: `/api/v1/admin/domain_allows/${id}`, | ||||
| 				asForm: true, | ||||
| 				body: formData, | ||||
| 				discardEmpty: false | ||||
| 			}), | ||||
| 			...updateCacheOnMutation("domainAllows", { | ||||
| 				key: (_draft, newData) => { | ||||
| 					return newData.domain; | ||||
| 				} | ||||
| 			}) | ||||
| 		}), | ||||
| 
 | ||||
| 		removeDomainBlock: build.mutation<DomainPerm, string>({ | ||||
| 			query: (id) => ({ | ||||
| 				method: "DELETE", | ||||
|  | @ -91,6 +122,16 @@ const useAddDomainBlockMutation = extended.useAddDomainBlockMutation; | |||
|  */ | ||||
| const useAddDomainAllowMutation = extended.useAddDomainAllowMutation; | ||||
| 
 | ||||
| /** | ||||
|  * Update a single domain permission (block) by PUTing to `/api/v1/admin/domain_blocks/{id}`. | ||||
|  */ | ||||
| const useUpdateDomainBlockMutation = extended.useUpdateDomainBlockMutation; | ||||
| 
 | ||||
| /** | ||||
|  * Update a single domain permission (allow) by PUTing to `/api/v1/admin/domain_allows/{id}`. | ||||
|  */ | ||||
| const useUpdateDomainAllowMutation = extended.useUpdateDomainAllowMutation; | ||||
| 
 | ||||
| /** | ||||
|  * Remove a single domain permission (block) by DELETEing to `/api/v1/admin/domain_blocks/{id}`. | ||||
|  */ | ||||
|  | @ -104,6 +145,8 @@ const useRemoveDomainAllowMutation = extended.useRemoveDomainAllowMutation; | |||
| export { | ||||
| 	useAddDomainBlockMutation, | ||||
| 	useAddDomainAllowMutation, | ||||
| 	useUpdateDomainBlockMutation, | ||||
| 	useUpdateDomainAllowMutation, | ||||
| 	useRemoveDomainBlockMutation, | ||||
| 	useRemoveDomainAllowMutation | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue