forked from open-webui/open-webui
		
	feat: toggle signup enable from admin panel
This commit is contained in:
		
							parent
							
								
									e2d74096f5
								
							
						
					
					
						commit
						bb5bf3964e
					
				
					 6 changed files with 169 additions and 28 deletions
				
			
		|  | @ -7,10 +7,13 @@ | |||
| 	import toast from 'svelte-french-toast'; | ||||
| 
 | ||||
| 	import { updateUserRole, getUsers, deleteUserById } from '$lib/apis/users'; | ||||
| 	import { getSignUpEnabledStatus, toggleSignUpEnabledStatus } from '$lib/apis/auths'; | ||||
| 
 | ||||
| 	let loaded = false; | ||||
| 	let users = []; | ||||
| 
 | ||||
| 	let signUpEnabled = true; | ||||
| 
 | ||||
| 	const updateRoleHandler = async (id, role) => { | ||||
| 		const res = await updateUserRole(localStorage.token, id, role).catch((error) => { | ||||
| 			toast.error(error); | ||||
|  | @ -32,11 +35,17 @@ | |||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	const toggleSignUpEnabled = async () => { | ||||
| 		signUpEnabled = await toggleSignUpEnabledStatus(localStorage.token); | ||||
| 	}; | ||||
| 
 | ||||
| 	onMount(async () => { | ||||
| 		if ($user?.role !== 'admin') { | ||||
| 			await goto('/'); | ||||
| 		} else { | ||||
| 			users = await getUsers(localStorage.token); | ||||
| 
 | ||||
| 			signUpEnabled = await getSignUpEnabledStatus(localStorage.token); | ||||
| 		} | ||||
| 		loaded = true; | ||||
| 	}); | ||||
|  | @ -49,7 +58,52 @@ | |||
| 		<div class="w-full max-w-3xl px-10 md:px-16 min-h-screen flex flex-col"> | ||||
| 			<div class="py-10 w-full"> | ||||
| 				<div class=" flex flex-col justify-center"> | ||||
| 					<div class=" text-2xl font-semibold">Users ({users.length})</div> | ||||
| 					<div class=" flex justify-between items-center"> | ||||
| 						<div class=" text-2xl font-semibold">Users ({users.length})</div> | ||||
| 						<div> | ||||
| 							<button | ||||
| 								class="flex items-center space-x-1 border border-gray-200 px-3 py-1 rounded-lg" | ||||
| 								type="button" | ||||
| 								on:click={() => { | ||||
| 									toggleSignUpEnabled(); | ||||
| 								}} | ||||
| 							> | ||||
| 								{#if signUpEnabled} | ||||
| 									<svg | ||||
| 										xmlns="http://www.w3.org/2000/svg" | ||||
| 										viewBox="0 0 16 16" | ||||
| 										fill="currentColor" | ||||
| 										class="w-4 h-4" | ||||
| 									> | ||||
| 										<path | ||||
| 											d="M11.5 1A3.5 3.5 0 0 0 8 4.5V7H2.5A1.5 1.5 0 0 0 1 8.5v5A1.5 1.5 0 0 0 2.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 7V4.5a2 2 0 1 1 4 0v1.75a.75.75 0 0 0 1.5 0V4.5A3.5 3.5 0 0 0 11.5 1Z" | ||||
| 										/> | ||||
| 									</svg> | ||||
| 
 | ||||
| 									<div class=" text-xs"> | ||||
| 										New Sign Up <span class=" font-semibold">Enabled</span> | ||||
| 									</div> | ||||
| 								{:else} | ||||
| 									<svg | ||||
| 										xmlns="http://www.w3.org/2000/svg" | ||||
| 										viewBox="0 0 16 16" | ||||
| 										fill="currentColor" | ||||
| 										class="w-4 h-4" | ||||
| 									> | ||||
| 										<path | ||||
| 											fill-rule="evenodd" | ||||
| 											d="M8 1a3.5 3.5 0 0 0-3.5 3.5V7A1.5 1.5 0 0 0 3 8.5v5A1.5 1.5 0 0 0 4.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 11.5 7V4.5A3.5 3.5 0 0 0 8 1Zm2 6V4.5a2 2 0 1 0-4 0V7h4Z" | ||||
| 											clip-rule="evenodd" | ||||
| 										/> | ||||
| 									</svg> | ||||
| 
 | ||||
| 									<div class=" text-xs"> | ||||
| 										New Sign Up <span class=" font-semibold">Disabled</span> | ||||
| 									</div> | ||||
| 								{/if} | ||||
| 							</button> | ||||
| 						</div> | ||||
| 					</div> | ||||
| 					<div class=" text-gray-500 text-xs font-medium mt-1"> | ||||
| 						Click on the user role cell in the table to change a user's role. | ||||
| 					</div> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek