Compare commits
	
		
			2 Commits
		
	
	
		
			7e37641e0b
			...
			d3fff38e36
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d3fff38e36 | |||
| 11dac10a07 | 
							
								
								
									
										17
									
								
								server/commands/resetPassword.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								server/commands/resetPassword.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| import { ApplicationCommandOptionType, BurstHandlerMajorIdKey } from 'discord.js' | ||||
| import { Command } from '../structures/command' | ||||
| import { RunOptions } from '../types/commandTypes' | ||||
| import { jellyfinHandler } from "../.." | ||||
| import { v4 as uuid } from 'uuid' | ||||
|  | ||||
| export default new Command({ | ||||
| 	name: 'passwort_reset', | ||||
| 	description: 'Ich vergebe dir ein neues Passwort und schicke es dir per DM zu. Kostet auch nix! Versprochen! 😉', | ||||
| 	options: [], | ||||
| 	run: async (interaction: RunOptions) => { | ||||
| 		console.log('PasswortReset called') | ||||
| 		interaction.interaction.followUp('Yo, ich schick dir eins!') | ||||
| 		console.log(JSON.stringify(interaction.interaction.member, null, 2)) | ||||
| 		jellyfinHandler.resetUserPasswort(interaction.interaction.member, uuid()) | ||||
| 	} | ||||
| }) | ||||
| @ -19,6 +19,7 @@ export interface Config { | ||||
|     jellfin_token: string | ||||
|     jellyfin_url: string | ||||
|     port: number | ||||
|     workaround_token: string | ||||
|   } | ||||
| } | ||||
| export const config: Config = { | ||||
| @ -47,6 +48,7 @@ export const config: Config = { | ||||
|     guild_id: process.env.GUILD_ID ?? "", | ||||
|     client_id: process.env.CLIENT_ID ?? "", | ||||
|     jellfin_token: process.env.JELLYFIN_TOKEN ?? "", | ||||
|     jellyfin_url: process.env.JELLYFIN_URL ?? "" | ||||
|     jellyfin_url: process.env.JELLYFIN_URL ?? "", | ||||
|     workaround_token: process.env.TOKEN ?? "" | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -14,7 +14,7 @@ export class JellyfinHandler { | ||||
|   private userApi: UserApi | ||||
|   private systemApi: SystemApi | ||||
|   private token: string | ||||
|   private authHeader: { headers: { 'X-MediaBrowser-Token': string } } | ||||
|   private authHeader: { headers: { 'X-Emby-Authorization': string } } | ||||
|   private config: Config | ||||
|   private serverName = ""; | ||||
|  | ||||
| @ -30,7 +30,7 @@ export class JellyfinHandler { | ||||
|     this.token = this.config.bot.jellfin_token | ||||
|     this.authHeader = { | ||||
|       headers: { | ||||
|         "X-MediaBrowser-Token": this.token | ||||
|         "X-Emby-Authorization": this.config.bot.workaround_token | ||||
|       } | ||||
|     } | ||||
|     const userApiConfigurationParams: ConfigurationParameters = { | ||||
| @ -94,6 +94,7 @@ export class JellyfinHandler { | ||||
|   } | ||||
|  | ||||
|   public async getUser(discordUser: GuildMember, requestId?: string): Promise<Maybe<UserDto>> { | ||||
|     logger.info(`Getting user for discord member ${discordUser.displayName}`, {requestId}) | ||||
|     const jfUsernameFromDiscordUsername = this.generateJFUserName(discordUser) | ||||
|     const jfUsers = await this.getCurrentUsers(discordUser.guild.id, requestId) | ||||
|     const foundUser = jfUsers.find(x => x.name === jfUsernameFromDiscordUsername) | ||||
| @ -101,7 +102,7 @@ export class JellyfinHandler { | ||||
|   } | ||||
|  | ||||
|   public async removeUser(newMember: GuildMember, requestId?: string) { | ||||
|     logger.error(`Trying to remove user ${newMember.displayName}, but method is not implemented`) | ||||
|     logger.error(`Trying to remove user ${newMember.displayName}, but method is not implemented`, {requestId}) | ||||
|     const jfuser = await this.getUser(newMember, requestId) | ||||
|     if (jfuser) { | ||||
|       await this.disableUser(jfuser, newMember.guild.id, requestId) | ||||
| @ -109,20 +110,41 @@ export class JellyfinHandler { | ||||
|   } | ||||
|  | ||||
|   public async resetUserPasswort(member: GuildMember, requestId?: string) { | ||||
|     logger.info(`Resetting password for user ${member.displayName}`, {requestId}) | ||||
|     const jfUser = await this.getUser(member, requestId) | ||||
|     if (jfUser && jfUser.id) { | ||||
|  | ||||
|       const r: UpdateUserPasswordRequest = { | ||||
|         newPw: this.generatePasswordForUser() | ||||
|       // const reset: UpdateUserPasswordRequest = { | ||||
|       //   resetPassword: true | ||||
|       // } | ||||
|        | ||||
|       // const shit: UpdateUserPasswordOperationRequest = { | ||||
|       //   updateUserPasswordRequest: reset, | ||||
|       //   userId: jfUser.id | ||||
|       // } | ||||
|  | ||||
|       // logger.info(JSON.stringify(jfUser.policy, null, 2)) | ||||
|  | ||||
|       // logger.info("Resetting password", {requestId}) | ||||
|       // await this.userApi.updateUserPassword(shit); | ||||
|        | ||||
|       const password = this.generatePasswordForUser() | ||||
|       const passwordRequest: UpdateUserPasswordRequest = { | ||||
|         // resetPassword: true, | ||||
|         currentPw: "", | ||||
|         newPw: password | ||||
|       } | ||||
|  | ||||
|       const shit: UpdateUserPasswordOperationRequest = { | ||||
|         updateUserPasswordRequest: r, | ||||
|       const passwordOperationRequest: UpdateUserPasswordOperationRequest = { | ||||
|         updateUserPasswordRequest: passwordRequest, | ||||
|         userId: jfUser.id | ||||
|       } | ||||
|  | ||||
|       this.userApi.updateUserPassword(shit) | ||||
|       logger.info("Setting new password", {requestId}) | ||||
|       await this.userApi.updateUserPassword(passwordOperationRequest); | ||||
|  | ||||
|  | ||||
|       (await member.createDM()).send(`Hier ist dein neues Passwort: ${password}`) | ||||
|     } else { | ||||
|       (await member.createDM()).send("Ich konnte leider keinen User von dir auf Jellyfin finden. Bitte melde dich bei Markus oder Samantha!") | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user