# Alt Kullanıcı Kancaları

https://dev.wisecp.com/tr/alt-kullanici-kancalari

Alt kullanıcı davet etme, kabul, güncelleme ve kaldırmanın yedi kancası.

## Genel Bakış

Bir hesaba başkasının erişmesi bir davetle başlar ve bir kabulle biter. Aradaki her adımın kendi kancası vardır: davet, yeniden gönderim, kabul, güncelleme, askıya alma ve kaldırma.

Üç ayrı numarayı ayırt etmek şart: **hesap**, erişen **kişi** ve alt kullanıcı **kaydı**. Karıştırmak yanlış hesaba yetki vermeye yol açar.

## Referans

### Alt kullanıcı davetini izleme

actionuser.subuser_invited

`AccountUsers` davet beklemede

Bir hesaba alt kullanıcı davet edildiğinde çalışır. **Erişim henüz yoktur**: davet kabul edilene kadar bekler.

Parametreler 4

$owner_idintDaveti gönderen hesap sahibi.

$subuser_idintOluşan bekleyen davet kaydı.

$emailstringDavet edilen adres. Bu adresin sistemde bir hesabı **olmak zorunda değildir**.

$permsarrayVerilecek izinler.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_invited', 10, function ($owner_id, $subuser_id, $email, $perms) {
    // Erisim HENUZ YOK: davet kabul bekliyor.
    Acme::noteInvite($owner_id, $email);
});
```

### Davetin kabulünü izleme

actionuser.subuser_accepted

`AccountUsers` erişim burada başlar

Alt kullanıcı daveti kabul ettiğinde çalışır. **Erişim bu noktada başlar**.

Parametreler 3

$owner_idintErişimin verildiği hesap.

$user_idintAlt kullanıcının **gerçek** kullanıcı kimliği; giriş yapan kişi budur.

$subuser_idintAlt kullanıcı kaydının kimliği. Üç ayrı numara vardır: hesap, kişi ve kayıt. Karıştırmak yanlış hesaba yetki vermeye yol açar.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_accepted', 10, function ($owner_id, $user_id, $subuser_id) {
    // Uc ayri numara: hesap, kisi, kayit.
    Acme::grantAccess($owner_id, $user_id);
});
```

### Alt kullanıcı eklenmesini izleme

actionuser.subuser_added

`AccountUsers` yönetici tarafından

Bir hesaba alt kullanıcı eklendiğinde çalışır.

Parametreler 2

$user_idintHesap sahibi.

$subuserarrayOluşan kayıt: adresi, etiketi ve izinleri.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_added', 10, function ($user_id, $subuser) {
    Acme::syncTeam($user_id, $subuser);
});
```

### Alt kullanıcı güncellemesini izleme

actionuser.subuser_updated

`AccountUsers` izinler dâhil

Alt kullanıcının bilgileri ya da izinleri değiştiğinde çalışır.

Parametreler 2

$owner_idintHesap sahibi.

$subuserarrayGüncellenen veri: adresi, etiketi, durumu ve izinleri.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_updated', 10, function ($owner_id, $subuser) {
    Acme::syncPermissions($owner_id, $subuser);
});
```

### Alt kullanıcı durumunu izleme

actionuser.subuser_status_changed

`AccountUsers` askıya alma

Bir alt kullanıcı askıya alındığında ya da geri açıldığında çalışır.

Parametreler 3

$owner_idintHesap sahibi.

$subuser_idintDurumu değişen kaydın kimliği.

$statusstringYeni durum: `active` ya da `inactive`.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_status_changed', 10,
    function ($owner_id, $subuser_id, $status) {
        if ($status === 'inactive') Acme::revokeTokens($subuser_id);
    });
```

### Davetin yeniden gönderilmesini izleme

actionuser.subuser_invite_resent

`AccountUsers` tekrar gönderim

Bekleyen bir davet yeniden gönderildiğinde çalışır.

Parametreler 2

$owner_idintDaveti gönderen hesap sahibi.

$subuser_idintYeniden gönderilen davetin kaydı.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_invite_resent', 10, function ($owner_id, $subuser_id) {
    Acme::noteResend($owner_id, $subuser_id);
});
```

### Alt kullanıcının silinmesini izleme

actionuser.subuser_deleted

`AccountUsers` silme sonrası

Bir alt kullanıcı hesaptan kaldırıldıktan sonra çalışır.

Parametreler 2

$owner_idintHesap sahibi.

$subuserarraySilinmeden önceki tam kayıt: adresi, durumu ve izinleri.

Dönüş 1

voidDönüş yoksayılır.

Dinleyici PHP

```php
Hook::add('action:user.subuser_deleted', 10, function ($owner_id, $subuser) {
    Acme::revokeAllAccess($owner_id, $subuser['email'] ?? '');
});
```

## Tuzaklar

> **Üç ayrı numara vardır**
> 
> Kabul kancası üç kimlik taşır: erişimin verildiği **hesap**, giriş yapan **kişi** ve alt kullanıcı **kaydı**. Yanlışını kullanmak, yetkiyi başka bir hesaba yazar.

> **Davet erişim değildir**
> 
> Davet kancası çalıştığında karşı taraf **henüz hiçbir şeye erişemez**. Erişim kabul kancasında başlar. Yetkiyi davet anında açan bir dinleyici, kabul edilmemiş bir daveti erişime çevirir.

## İlgili Makaleler

- [Müşteri Hesabı Kancaları](https://dev.wisecp.com/tr/musteri-hesabi-kancalari)
- [Fatura Yaşam Döngüsü Kancaları](https://dev.wisecp.com/tr/fatura-yasam-dongusu-kancalari)
- [Kancalar Nasıl Çalışır](https://dev.wisecp.com/tr/kancalar-nasil-calisir)
