Everion Consulting
Everion Consulting
Ana SayfaBlogDjango Kullanıcı Yönetimi

Django Kullanıcı Yönetimi

Django Kullanıcı Yönetimi
Said Enes Subaşı

Said Enes Subaşı

24 Temmuz 2025

DjangoYazılım Mimarisi

Giriş

Çağdaş web uygulamaları için Django istikrarlı, güvenli ve genişletilebilir bir kullanıcı yönetim sistemi sunar. Güvenli kullanıcı veri yönetimi, yetkilendirme ve kimlik doğrulama her web uygulamasının temel gereksinimleridir. Bu gereksinimleri karşılamak için Django entegre bir kullanıcı modeli, oturum yönetimi ve izin sistemi sunar. Bu yazıda Django'nun kullanıcı yönetim altyapısına yakından bakacağız.

Yerleşik Kimlik Doğrulama Sistemi

Normal Kullanıcı ile Superuser

Django kullanıcıların farklı izin seviyeleriyle tanımlanmasına olanak tanır. Bu, hem sınırlı izinlere sahip son kullanıcılara hem de tüm sistemi aynı anda yönetebilen yöneticilere olanak tanır. Bu esneklik iki temel kullanıcı türünü vurgular: normal kullanıcı (user) ve süper kullanıcı (superuser).

Normal Kullanıcı (User)

Varsayılan olarak bir bilgisayar is_staff=False ve is_superuser=False ayarlarıyla tanımlanır. Bu kullanıcı:

  • Yönetici paneline erişemez.
  • Yalnızca kendi verileri üzerinde işlem yapabilir.
  • Sistem yöneticileri tarafından izinler atanmadığı sürece.
  • Bu kullanıcı, örneğin bir istemci panelinde oturum açabilir, ancak sistem genelinde kontrole sahip değildir.

Süper Kullanıcı (Super User)

Süper kullanıcı Django'da tüm sistemde sınırsız izinlere sahip bir yönetici kullanıcısıdır. Varsayılan olarak is_staff=True ve is_superuser=True ayarlarıyla tanımlanır. Bu kullanıcı:

  • Yönetici paneline oturum açabilir.
  • Tüm modellerde okuma, yazma, güncelleme ve silme işlemleri gerçekleştirebilir.
  • Diğer kullanıcıları görüntüleyebilir ve yönetebilir.

Çalıştırıldığında Django genellikle kullanıcı adı, e-posta ve parola gerektiren ve ardından tüm sistemlere izinler veren bir kullanıcı tanımlama programıdır.

is_staff ≠ is_superuser: Bu iki alan genellikle karıştırılır. Farkları şunlardır:

is_staff=True: Kullanıcı yönetici paneline giriş yapabilir ancak yalnızca izin sahibi olduğu modeller üzerinde işlem yapabilir.

is_superuser=True: Kullanıcı tüm sistem için koşulsuz izinlere sahiptir.

Gelişmiş sistemlerde belirli kullanıcıların belirli bölümlere atanması isteniyorsa, bu kullanıcı is_staff=True değeri True olarak ayarlanmalı ve ilgili model için izinler ayrı ayrı tanımlanmalıdır.

Terminali Kullanarak Kullanıcı Oluşturma

Django'nun özel komutları, terminalden kullanıcı oluşturmayı kolaylaştırır. Test ortamlarında, bu komutlar kullanıcıları değiştirmek veya bir yönetici hesabını yönetmek için mükemmeldir.

python manage.py createsuperuser

Sistem çalıştırıldığında parolanızı, e-posta adresinizi ve kullanıcı adınızı isteyecektir. Başarılı olursa, bilgisayar Django yönetici paneline (/admin) erişebilir.

Kullanıcı Oluşturmak İçin Django Shell Kullanma

Kullanıcı oluşturmada daha fazla esneklik, Django kabuk ortamıyla sağlanabilir:

python manage.py shell

Sonraki:

django.contrib.auth.models'den User'ı içe aktarın.

user = User.objects.create_user(password='guclu-sifre', email='ahmet@example.com' ve username='ahmet')
user.is_staff = True # Yönetici paneline erişim isteğe bağlıdır.save()

Shell diğer kullanıcı özelliklerini doğrudan güncellemek ve hem yetkili hem de normal kullanıcılar oluşturmak için kullanılabilir ve bunun yanında tabiki de Admin paneli de kullanıcı düzenleme yetkilendirme ve diğer işlemler için kullanılabilir.

Django Admin Paneli ile Kullanıcı ve Yetki Yönetimi

Django'nun otomatik olarak oluşturulan yönetici paneli, en güçlü özelliklerinden biridir. Yönetici paneli, kullanıcı ekleme, düzenleme ve yetkilendirme için kullanıcı dostu bir arayüz sunar.

Aşağıda ekran görüntüleri ve bu prosedürlerin adım adım açıklamaları bulunmaktadır.

Yeni Kullanıcı Ekleme

Yeni bir kullanıcı eklemek için yönetici panelinin "Kullanıcılar" sekmesindeki "+ Ekle" butonuna tıklayın. Açılan formda aşağıdaki bilgiler istenir:

Kullanıcı Adı: En fazla 150 karakter. Harf, rakam ve @/./+/-/_ karakterlerini kullanabilirsiniz.

Şifre: Tamamen sayısal veya çok popüler şifreler kabul edilmez; şifre en az sekiz karakter içermelidir. Girilen şifrenin doğrulanması gerekmektedir.

Kullanıcı oluşturma ekranı örneği:

Yeni kullanıcı ekleme - Django

Rol ayarları ve kullanıcı etkinliği

Kullanıcı için İzinler sekmesi altında üç temel bayrak ayarlanabilir:

Etkin: Kullanıcının etkinlik düzeyini değerlendirir. Bu kutu işaretlenmeden bırakılırsa kullanıcı sistem kayıtlarına erişemez.

Personel Durumu (is_staff): Kullanıcının yönetici paneline erişip erişemediğini gösterir.

Süper Kullanıcı (is_superuser): Kullanıcıya yetkilendirmeye ihtiyaç duymadan sisteme tam erişim sağlar.

Bu panelde şu üç izin düzeyi mevcuttur:

Rol ayarları ve kullanıcı etkinliği - Django

Kullanıcı İzinlerinin Belirlenmesi

Kullanıcının sistem izinleri barındırıldıktan sonra dikkatlice kontrol edilecektir. CRUD (Oluşturma, Okuma, Güncelleme, Silme) ile ilgili Django modellerine ait izinler "Kullanıcı İzinleri" bölümünden atanabilir. Kullanıcı yalnızca belirli veri türlerine erişebilir.

İzin Seçim Ekranı:

Kullanıcı izinlerinin belirlenmesi - Django

Kullanıcı Grupları Oluşturma ve İzin Verme

Benzer izinlere sahip kullanıcıları gruplandırarak izin yönetimi kolaylaştırılır. Django'daki "Grup" özelliği şunları yapmanızı sağlar:

  1. Bir grup oluşturun.
  2. Grubun tüm gerekli izinlerini belirtin.
  3. Bu gruba kullanıcılarla katılın.

Bu aynı anda birden fazla kullanıcıya merkezi olarak izin vermenizi sağlar.

Grup oluşturma ekranı:

Grup oluşturma ekranı - Django

Sonuç

Django istikrarlı bir mimari içinde çağdaş web uygulamalarının ihtiyaç duyduğu tüm temel kullanıcı yönetimi unsurlarını sağlar. Entegre kimlik doğrulama sistemi, kullanıcı rolleri, kullanıcı oluşturmak için uyarlanabilir terminal komutları ve kullanıcı dostu yönetici paneli, geliştiriciler ve sistem yöneticileri için güçlü ve kontrol edilebilir bir temel sunar.

Yetkilendirme süreci normal kullanıcılar ve süper kullanıcıların farklı rollere sahip olması nedeniyle güvenli ve ölçeklenebilirdir. Ayrıca kullanıcı grupları ve özel izinler sayesinde büyük ekipleri veya çok rollü sistemleri yönetmek bile basitleştirilir.

Django hem grafiksel bir arayüz kullanarak ayrıntılı yetkilendirme gereksinimleri hem de terminal aracılığıyla hızlı müdahaleler için basit ve etkili çözümler sunar. Bu nedenle Django hem küçük hem de büyük ölçekli projelerde kullanıcıları yönetmek için popüler bir çerçevedir.

Kaynaklar

Django Kullanıcı Yönetimi | Everion Consulting