package main

// Profil acikca belirtilen erisim: bir profilin verisine, aktif profil secimine bagli kalmadan
// erisilir. Tum giris yapmis profiller ayni anda calisabilir; her istek kendi profilinin verisini kullanir.

// kuruluVarMiProfil: verilen profilde kayit var mi (etkin olsun olmasin).
func kuruluVarMiProfil(profil, anahtar string) bool {
	kuruluMu.Lock()
	defer kuruluMu.Unlock()
	for _, k := range kuruluListeAl(profil) {
		if k.Anahtar == anahtar {
			return true
		}
	}
	return false
}

// kuruluEtkinMiProfil: verilen profilde kurulu ve etkin mi.
func kuruluEtkinMiProfil(profil, anahtar string) bool {
	kuruluMu.Lock()
	defer kuruluMu.Unlock()
	for _, k := range kuruluListeAl(profil) {
		if k.Anahtar == anahtar {
			return k.Etkin
		}
	}
	return false
}

// kuruluAcilistaListesiProfil: verilen profilin acilista baslatilacak etkin eklentileri.
func kuruluAcilistaListesiProfil(profil string) []kuruluEklenti {
	kuruluMu.Lock()
	defer kuruluMu.Unlock()
	var liste []kuruluEklenti
	for _, k := range kuruluListeAl(profil) {
		if k.Etkin && k.Acilista {
			liste = append(liste, k)
		}
	}
	return liste
}
