feat(teamsbot): bot account settings UI for dedicated Microsoft account

- New "Bot-Account (Microsoft)" section in TeamsbotSettingsView
- Email and password fields for dedicated bot account
- Hint about MFA requirement
- Updated API types: botAccountEmail, botAccountPassword in Config interfaces

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
ValueOn AG 2026-02-15 11:56:05 +01:00
parent 7421aebf74
commit 8669a5916f
2 changed files with 33 additions and 0 deletions

View file

@ -58,6 +58,8 @@ export interface TeamsbotConfig {
language: string;
voiceId?: string;
browserBotUrl?: string;
botAccountEmail?: string;
botAccountPassword?: string;
triggerIntervalSeconds: number;
triggerCooldownSeconds: number;
contextWindowSegments: number;
@ -86,6 +88,8 @@ export interface ConfigUpdateRequest {
language?: string;
voiceId?: string;
browserBotUrl?: string;
botAccountEmail?: string;
botAccountPassword?: string;
triggerIntervalSeconds?: number;
triggerCooldownSeconds?: number;
contextWindowSegments?: number;

View file

@ -268,6 +268,35 @@ export const TeamsbotSettingsView: React.FC = () => {
</div>
</div>
{/* Bot Account */}
<div className={styles.settingsSection}>
<h4 className={styles.sectionTitle}>Bot-Account (Microsoft)</h4>
<div className={styles.formGroup}>
<label className={styles.label}>E-Mail</label>
<input
type="email"
className={styles.input}
value={formData.botAccountEmail || ''}
onChange={(e) => _updateField('botAccountEmail', e.target.value)}
placeholder="bot@ihrefirma.ch"
/>
<span className={styles.hint}>Dedizierter Microsoft-Account fuer authentifizierten Bot-Zugang. Leer = anonymer Gast.</span>
</div>
<div className={styles.formGroup}>
<label className={styles.label}>Passwort</label>
<input
type="password"
className={styles.input}
value={formData.botAccountPassword || ''}
onChange={(e) => _updateField('botAccountPassword', e.target.value)}
placeholder="••••••••"
/>
<span className={styles.hint}>MFA muss fuer diesen Account deaktiviert sein. Passwort wird verschluesselt gespeichert.</span>
</div>
</div>
{/* Advanced Settings */}
<div className={styles.settingsSection}>
<h4 className={styles.sectionTitle}>Erweiterte Einstellungen</h4>