# Admin Paneli & Yetki Yönetimi

TYPO3 backend arayüzüne giriş, ilk yapılandırma ve temel yetki ayarlarını kapsar.

---

## Backend'e Erişim

### Giriş URL'si

```
https://your-domain.com/typo3
# veya DDEV ile
https://typo3v13.ddev.site/typo3
```

### İlk Giriş

Kurulum sırasında oluşturulan admin bilgileri ile giriş yapılır. Eğer bilgileri unuttuysanız:

```bash
# Yeni admin kullanıcı oluştur
ddev exec vendor/bin/typo3 backend:createadmin

# Admin şifresini sıfırla
ddev exec vendor/bin/typo3 backend:resetpassword admin NewPassword123!
```

---

## Backend Modülleri

### Ana Modüller

| Modül | Açıklama |
|-------|----------|
| **Web > Page** | Sayfa içerik yönetimi |
| **Web > View** | Sayfa önizleme |
| **Web > List** | Kayıt listeleme |
| **File > Filelist** | Dosya yönetimi |
| **Site Management > Sites** | Site yapılandırması |
| **Admin Tools > Maintenance** | Bakım araçları |
| **Admin Tools > Settings** | Sistem ayarları |
| **Admin Tools > Extensions** | Extension yönetimi |
| **Admin Tools > Upgrade** | Sürüm yükseltme |
| **System > Backend Users** | Kullanıcı yönetimi |
| **System > Log** | Sistem logları |

---

## Admin Kullanıcı Türleri

### 1. System Maintainer (Sistem Bakımcısı)

En yüksek yetki seviyesi. Install Tool ve Maintenance modülüne erişebilir.

```php
// config/system/settings.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers'] = [1, 2]; // User UID'leri
```

### 2. Admin Kullanıcı

Tüm backend modüllerine erişebilir, ancak Install Tool'a erişemez.

### 3. Editör

Sınırlı erişim. Sadece izin verilen modüller ve sayfalar görünür.

---

## Kullanıcı Grubu Oluşturma

### Backend Kullanıcı Grubu

**System > Backend Users > Backend User Groups > Create new**

| Alan | Açıklama |
|------|----------|
| Group name | Grup adı (ör: "Editörler") |
| Sub Groups | Alt gruplar (grup miras alma) |
| Modules | Erişilebilir modüller |
| Tables (listing) | Listelenebilir tablolar |
| Tables (modify) | Düzenlenebilir tablolar |
| Page types | İzin verilen sayfa türleri |
| Allowed languages | Düzenlenebilir diller |
| DB Mounts | Sayfa ağacında erişim noktaları |
| File Mounts | Dosya sistemi erişim noktaları |

### Grup İzin Yapılandırması Örneği

**Editör grubu için önerilen ayarlar:**

```
Modules:
  ✅ Web > Page
  ✅ Web > View
  ✅ Web > List
  ✅ File > Filelist
  ❌ Admin Tools (tümü kapalı)
  ❌ System (tümü kapalı)

Tables (listing):
  ✅ pages
  ✅ tt_content
  ✅ sys_file_reference
  ✅ sys_category

Tables (modify):
  ✅ pages
  ✅ tt_content
  ✅ sys_file_reference

Page types:
  ✅ Standard
  ✅ Shortcut
  ❌ Backend User Section
  ❌ Mount Point
```

---

## Sayfa İzinleri (Access Control)

### Sayfa Bazlı İzinler

Backend'de her sayfanın erişim izinleri ayarlanabilir:

1. **Web > List** modülüne gidin
2. Sayfayı seçin ve **Access** sekmesini açın
3. İzinleri ayarlayın:

| İzin | Owner | Group | Everybody |
|------|-------|-------|-----------|
| Show page | ✅ | ✅ | ❌ |
| Edit content | ✅ | ✅ | ❌ |
| Delete page | ✅ | ❌ | ❌ |
| New page | ✅ | ❌ | ❌ |

### Toplu İzin Atama (CLI)

```bash
# Tüm sayfalara varsayılan izinleri ata
ddev exec vendor/bin/typo3 backend:permission:set \
  --page-id=1 \
  --recursive \
  --owner=1 \
  --group=1
```

---

## TSconfig ile Özelleştirme

### User TSconfig

Backend kullanıcılarının davranışlarını özelleştirir:

```typoscript
# Sayfa modülünde belirli CType'ları gizle
mod.web_layout.tt_content.preview {
    # Preview yapılandırması
}

# Belirli alanları gizle
TCEFORM.tt_content {
    # Layout alanını gizle
    layout.disabled = 1
    # Frame class'ı gizle
    frame_class.disabled = 1
}

# Dashboard varsayılan widget'ları
options.dashboard.defaultDashboard = myCustomDashboard
```

### Page TSconfig

Sayfa bazında backend davranışını kontrol eder:

```typoscript
# Yeni içerik elemanı wizard'ını özelleştir
mod.wizards.newContentElement.wizardItems {
    common.elements {
        # Sadece belirli elemanları göster
        textmedia.hidden = 1
    }
}

# RTE yapılandırması
RTE.default.editor.config.stylesSet = myStyles
```

---

## Güvenlik Ayarları

### Oturum Zaman Aşımı

```php
// config/system/additional.php
$GLOBALS['TYPO3_CONF_VARS']['BE']['sessionTimeout'] = 3600; // 1 saat
$GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSL'] = true; // HTTPS zorunlu
```

### IP Kısıtlama

```php
// Sadece belirli IP'lere erişim
$GLOBALS['TYPO3_CONF_VARS']['BE']['IPmaskList'] = '192.168.1.0/24,10.0.0.0/8';
```

### Şifre Politikası

```php
// Minimum şifre uzunluğu
$GLOBALS['TYPO3_CONF_VARS']['BE']['passwordPolicy'] = 'default';
```

---

## Bakım İşlemleri

### Maintenance Modülü

**Admin Tools > Maintenance** modülünde:

| İşlem | Açıklama |
|-------|----------|
| Flush Caches | Tüm önbellekleri temizle |
| Analyze Database | Veritabanı yapısını kontrol et |
| Remove Temp Assets | Geçici dosyaları temizle |
| Dump Autoload | Composer autoload yenile |
| Clear Persistent Database Tables | Oturum/cache tablolarını temizle |

### CLI ile Bakım

```bash
# Cache temizle
ddev exec vendor/bin/typo3 cache:flush

# Belirli cache grubunu temizle
ddev exec vendor/bin/typo3 cache:flush --group=pages

# Veritabanı yapısını güncelle
ddev exec vendor/bin/typo3 extension:setup

# Referans indeksini güncelle
ddev exec vendor/bin/typo3 referenceindex:update
```

---

## Kaynaklar

- [TYPO3 Backend User Management](https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/Setup/BackendUsers.html)
- [Page TSconfig Reference](https://docs.typo3.org/m/typo3/reference-tsconfig/main/en-us/)
- [User TSconfig Reference](https://docs.typo3.org/m/typo3/reference-tsconfig/main/en-us/UserTsconfig/)
