v2.5.2
Giriş yap

Yetkilendirme sistemi (permissions)

aziz1235
807 defa görüntülendi ve 1 kişi tarafından değerlendirildi

beyler projem için yardımınıza ihtiyacım var yetkilendirme sistemi için fikir mantık verirseniz çok sevinirim.

istediğim şu kişiye ait yetkiler olacak gruplamalarda olabilir:

------ Görüntüleme, Düzenleme, Ekleme, Silme ------

örneğin toplantı sekmesini ve toplantıları herkes görücek ama bazı kişiler toplantı oluşturup silebilicek aynı şekilde birsürü menüm olduğunu düşünün ve artmayada devam edicek

şimdi böyle bir yapıyı nasıl kurabilirim veri tabanım nasıl olmalı nasıl bir yol izlemeliyim algoritmayı kafamda bitürlü kuramıyom yardımcı olursanız sevinirim.

Cevap yaz
Cevaplar (5)
emmir2
1262 gün önce

Gerisi sende :D

<?php
     <form method="POST" >
          <label><input class='permission' type="checkbox" name="yetki[ayar]" value="1" /> YETKİ ADI</label>
          <label><input class='permission' type="checkbox" name="yetki[menu]" value="1" /> YETKİ ADI</small></label>
          <label><input class='permission' type="checkbox" name="yetki[kullanici]" value="1" /> YETKİ ADI</small></label>
         <button type="submit" class="btn btn-block btn-primary">
                <i class="fa fa-check"></i> Kaydet
        </button> 
         </form>

           <?php
        $active = [];
        foreach ($_POST["yetki"] as $key => $value) {
        array_push($active, $key);
         }
        if($_POST){
         $implode = implode("~", $active);
                $yetkilendir=$db->prepare("INSERT INTO tablon SET
                    yetki=:yetki
                    ");
                $insert=$yetkilendir->execute(array(
                    'yetki' => $implode
                ));

                if ($insert) {
                        header("Location:yetki.php?durum=ok");
                    }else{
                        header("Location:yetki.php?durum=no");
                    }
            }
            Sayfa Kontrolu İçinde:
                if (!strstr($yetkicek['yetki'], 'yetkiadi')) {
                    header("location: index.php");
                    exit;
                }
         ?>
kartal
1264 gün önce

Önce ne tür işlemler olacak onları belirle kafanda :)

1 : (status 1 olan)
Görüntüleme

2 : (status 2 olan)
Görüntüleme
Güncelleme(yazma)

3 : (status 3 olan)
Admin
Görüntüleme
Güüncelleme
Yazma
Yeni üye onaylama vs.

UserId----Status----Name-------Onay
1---------1---------Mehmet-----0
2---------1---------Ayşe-------1
3---------2---------Kemal------0

Onay 1 ise kullanıcı Admin tarafından onaylanmıştır. vs.

Sonra işlem yaptıracağın butonları vs. nerelerde kullanman gerekiyorsa
<?php

if($_SESSION["user_status"] == 3){
     echo'<button>Sil</button>';
}

?>

Yapman geren birşey daha var. (üsttekinden daha önemli)

db_delete.php

session_start();
$sessionstatus = (int) $_SESSION["user_status"];
if(isset($sessionstatus) && $sessionstatus === 3 && mb_strlen($sessionstatus, 'UTF-8') == 3)){

}else{

header('location:index.php');
exit;

}

bonus :
Eğer daha güvenlik isitiyorsan :
htaccesss dosyandan bu sayfaların olduğu dizine sadece belli ip adresinden giriş yapılmasını sağlayabilirsin.

0kan87
1264 gün önce

Benim yetki sistemim şu sekilde, bir fonksiyonum var yetki adında parametre alıyor. Ardından fonksiyon session da üye id ye bakarak üyenin yetki sütununda fonksiyona giren yetki var mı yok mu diye bakıyor.
Yetkileri her uyenin kendi yetki sütununda json formatta tutuyorum. Bu sayede dilediğim kadar yetki verebiliyorum.

Yapılacak bir işlemden önce fonksiyonum ile üyenin buna yetkisi var mı diye bakıyorum.

Örnek vermek gerekirse; Blog Sil adında yetkim olsun üyeye bu yetkiyi vermiş olayım. Blog silme sayfasında en dıştaki if sarmalında üyenin yetkisi yoksa bu işlemi yapmasını engelliyorum.

hakankorkz
1265 gün önce

dostum benim fikrim var bu konu da algoritma mantığı konusunda dc de eklersen konuşuruz istersen

dc Hakan Korkmaz#0670

aziz1235
1265 gün önce

ula kimsenin bi fikri yokmu internette bunla ilgili bi yazı veya video da yok yapan nasıl yapıyor öyleyse :-D