Personel Yetki Grupları
Personelin panelde neyi yapabileceğini belirleyen altı uç.
Genel Bakış
Yetki grubu, bir personelin panelde neyi görebileceğini ve neyi değiştirebileceğini belirler. Her personel bir gruba bağlıdır ve grubun taşıdığı yetkiler onun yetkileridir.
Verilebilecek yetkilerin tam listesi ayrı bir uçtan gelir. Bu katalog kuruluma göre değişir: kurulu modüller kendi yetkilerini ekler ve bazıları ülkeye bağlıdır.
Kurulumun kurucu grubu korumalıdır: silinemez ve yetki yönetimi hakkını kaybedemez. Bu, kimsenin kendini yetki veremez duruma düşürmemesi içindir.
Referans
Yetki Kataloğunu Getirme
Bir gruba verilebilecek bütün yetkileri gruplanmış hâlde döndürür.
curl 'https://panel.ornek.com/api/v1/admin/admins/privilege-keys' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/admins/privilege-keys', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
const keys = data.flatMap((g) => g.permissions.map((p) => p.key));$ch = curl_init('https://panel.ornek.com/api/v1/admin/admins/privilege-keys');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Katalog KURULUMA gore degisir: modullerin actigi yetkiler ve ulkeye bagli olanlar eklenir.
$groups = Api::Admins()->GetPrivilegeKeys()['data'];Grupları Listeleme
Tanımlı yetki gruplarını ve içlerindeki personeli döndürür.
curl 'https://panel.ornek.com/api/v1/admin/admins/privileges' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/admins/privileges', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/admins/privileges');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Liste yetki ADLARINI degil SAYISINI verir; hangi yetkiler oldugunu detaydan okuyun.
$groups = Api::Admins()->GetPrivileges()['data'];Grup Oluşturma
Yeni bir yetki grubu tanımlar.
curl -X POST 'https://panel.ornek.com/api/v1/admin/admins/privileges' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"name":"Destek Ekibi","permissions":["TICKETS"]}'const res = await fetch('https://panel.ornek.com/api/v1/admin/admins/privileges', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Support Team',
permissions: ['ADMIN_CONFIGURE', 'TICKETS'],
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/admins/privileges');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Support Team',
'permissions' => ['ADMIN_CONFIGURE', 'TICKETS'],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Yetkisiz bir grup gecerlidir: grup olusur ama uyeleri panelde hicbir sey goremez.
Api::Admins()->CreatePrivilege([
'name' => 'Support Team',
'permissions' => ['TICKETS'],
]);Grup Detayı
Tek bir yetki grubunu taşıdığı yetkilerle döndürür.
curl 'https://panel.ornek.com/api/v1/admin/admins/privileges/1' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/admins/privileges/${pid}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/admins/privileges/' . $pid);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Yetki eklemeden ONCE burayi okuyun: yazma cagrisi listeyi ekler degil DEGISTIRIR.
$g = Api::Admins()->GetPrivilege(['pid' => $pid])['data'];Grubu Güncelleme
Yetki grubunun adını ve taşıdığı yetkileri değiştirir.
curl -X PATCH 'https://panel.ornek.com/api/v1/admin/admins/privileges/3' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"permissions":["TICKETS","SERVICES"]}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/admins/privileges/${pid}`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
permissions: ['ADMIN_CONFIGURE', 'TICKETS', 'SERVICES'],
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/admins/privileges/' . $pid);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['permissions' => ['TICKETS', 'SERVICES']]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Tek yetki eklemek icin MEVCUT listeyi okuyup uzerine ekleyin; yoksa digerleri duser.
$g = Api::Admins()->GetPrivilege(['pid' => $pid])['data'];
$g['permissions'][] = 'SERVICES';
Api::Admins()->UpdatePrivilege(['pid' => $pid, 'permissions' => $g['permissions']]);Grubu Silme
Yetki grubunu kaldırır.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/admins/privileges/3' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/admins/privileges/${pid}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/admins/privileges/' . $pid);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Once ICINDEKI personeli tasiyin: gruba bagli hesaplar dayanaksiz kalabilir.
$g = current(array_filter(
Api::Admins()->GetPrivileges()['data'], fn ($x) => $x['id'] === $pid,
));
if (! $g['appointees']) Api::Admins()->DeletePrivilege(['pid' => $pid]);Tuzaklar
Güncellemede gönderdiğiniz yetki listesi eskisinin yerine geçer. Bir grubu genişletmek isterken yalnız yeni yetkiyi göndermek, o grubun bütün diğer yetkilerini alır ve içindeki personel bir anda panelde neredeyse hiçbir şey göremez. Önce detayı okuyup üzerine ekleyin.
Yetki anahtarlarının listesi sabit değildir: kurulu modüller kendi yetkilerini ekler ve bazıları kurulumun ülkesine bağlıdır. Anahtarları koda gömen bir betik, başka bir kurulumda var olmayan bir yetkiyi vermeye çalışır. Her seferinde katalog ucundan okuyun.
Kurucu gruptan yetki yönetimi hakkını almak reddedilir. Bu kasıtlı bir kilittir: o hak kaybolsaydı hiçbir hesap bir daha yetki dağıtamaz ve kurulum yönetilemez hâle gelirdi. Grup silinemez de.
Bir yetki grubunu silmek, o gruba bağlı personeli dayanaksız bırakabilir. Liste ucu her grubun içindeki personeli adlarıyla verir; silmeden önce oraya bakıp hesapları başka bir gruba taşıyın. Boş bir grubu silmek güvenlidir.
Grup listesi yalnız yetki sayısını verir; hangi yetkiler olduğunu değil. İki grup aynı sayıyı taşıyıp tamamen farklı şeyler yapabilir. Bir grubun gerçekten neye izin verdiğini görmek için detay ucundan okuyun.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.