permission_grants
Bu tablo bir authority kaydının hangi izinleri ne zaman aldığını ve kaybettiğini kaydeder.
authority_permissions tablosu yalnızca "şu anda hangi izin aktif" sorusuna cevap verir. Ama denetim açısından "bu izni kim ne zaman verdi, kim ne zaman aldı" sorusu da önemlidir. Bir izin verilirken yetkilendiren kişi, iptal edilirken kimin tarafından iptal edildiği bilinmelidir. permission_grants bu geçmişi tutar. Aynı izin birden fazla kez verilip alınabilir; her operasyon ayrı bir kayıt olur. Kısaca: bir user'ın cihaz üzerindeki izin geçmişi, kim tarafından ne zaman verildi/iptal edildi bu tabloda tutulur.
Bu tablo yalnızca yetki atama/iptal olaylarını kaydeder. Cihaz ve izin tanımları burada değildir (authorities, permissions tablolarında). Kullanıcı hesabı bilgileri burada yer almaz. Kısaca: izin ve cihaz detayı burada değildir.
Kolonlar
| Kolon | Tip | Null | Kısıtlar | Anlamı |
|---|---|---|---|---|
id | bigint | hayır | PK, AUTO INCREMENT | Yetki geçmişi kaydı seri numarası |
authority_id | int | hayır | FK → authorities.id | Hangi authority'ye |
permission_id | int | hayır | FK → permissions.id | Hangi izin |
action | enum | hayır | GRANTED, REVOKED | Verildi mi iptal edildi mi |
granted_by | int | evet | FK → users.id | İzni veren kullanıcı |
revoked_by | int | evet | FK → users.id | İzni iptal eden kullanıcı |
granted_at | timestamp | evet | - | İzin verme zamanı |
revoked_at | timestamp | evet | - | İzin iptal zamanı |
reason | varchar(255) | evet | - | Verme/iptal nedeni (opsiyonel not) |
Örnek Kayıtlar
- İzin Verme Dizisi
- İzin İptal Tarihi
- İzin Yeniden Aktivasyonu
[
{ "id": 1, "authority_id": 2, "permission_id": 3, "action": "GRANTED", "granted_by": 1, "revoked_by": null, "granted_at": "2026-04-03T10:05:00Z", "revoked_at": null, "reason": "Not görüntüleme için" },
{ "id": 2, "authority_id": 2, "permission_id": 4, "action": "GRANTED", "granted_by": 1, "revoked_by": null, "granted_at": "2026-04-03T10:05:00Z", "revoked_at": null, "reason": "Not düzenleme için" },
{ "id": 3, "authority_id": 2, "permission_id": 4, "action": "REVOKED", "granted_by": 1, "revoked_by": 1, "granted_at": "2026-04-03T10:05:00Z", "revoked_at": "2026-04-05T14:30:00Z", "reason": "Hata sonrası izin kısıtlandı" }
]
Özet: Authority ID 2 (operatör) için not izinleri verildi. Daha sonra notes.edit izni iptal edildi (hata nedeniyle).
{
"id": 50,
"authority_id": 3,
"permission_id": 1,
"action": "REVOKED",
"granted_by": 1,
"revoked_by": 2,
"granted_at": "2026-04-03T10:10:00Z",
"revoked_at": "2026-04-07T16:45:00Z",
"reason": "Cihaz deaktive edildi, pompa kontrolü iptal"
}
Özet: Authority ID 3 (sahibi) için pompa başlatma izni verilmişti (04-03), daha sonra iptal edildi (04-07). Naz (user_id: 2) tarafından iptal edildi.
[
{ "id": 60, "authority_id": 2, "permission_id": 7, "action": "GRANTED", "granted_by": 1, "revoked_by": null, "granted_at": "2026-04-01T08:00:00Z", "revoked_at": null, "reason": null },
{ "id": 61, "authority_id": 2, "permission_id": 7, "action": "REVOKED", "granted_by": 1, "revoked_by": 1, "granted_at": "2026-04-01T08:00:00Z", "revoked_at": "2026-04-06T11:20:00Z", "reason": "Geçici olarak iptal" },
{ "id": 62, "authority_id": 2, "permission_id": 7, "action": "GRANTED", "granted_by": 1, "revoked_by": null, "granted_at": "2026-04-08T09:00:00Z", "revoked_at": null, "reason": "Yeniden aktivasyon" }
]
Özet: Authority ID 2 için finans izni verildi, iptal edildi, sonra yeniden verildi. Tümü tarihli.