Nasıl uygulamada ben devralınan güvenlik rolleri için HTML vb yazılı olmalıdır?

0 Cevap php

Başlıktan da anlaşılacağı gibi, ben oldukça iyi usul kodu yazılmış bir php / MySQL uygulaması miras ettik, ama sadece bir yönetici kullanıcı girişi vardır. Müşteri doğal farklı kullanıcılar / rolleri içine işlevselliğini bölünmüş ve sonuçta en iyi uygulama teknikleri ile uygulama kodu güncellemek istiyor.

Admin bölümünde birinin adını güncellenmesi Örneğin, orijinal versiyonu, sadece kullanıcı adı (kısalık için basitleştirilmiş kod) ile önceden doldurulmuş bir metin alanı görüntüler:

<input type="text" name="username" value="<?= $username; ?>">

POST sonra düzenli ifade karşı kontrol ve veritabanına kaydedilir.

Ben farklı bir kullanıcının 'roller' ile başa böylece mevcut kodunu değiştirmek için nasıl bakmak istedi edilmiş ve oldukça mutlu user gibi tablolar ile örnek bir uygulamayı alay var, {[(1)] }, permission, user-role ve role-permission Bu uygulamada işe nasıl açıklamak için. İçinizde kod temeli içine yazma izinleri konusunda herhangi bir ipucu varsa, ben sadece merak? Basitçe gibi bir şey içine şablonda veya bir fonksiyonu ya mevcut kod tamamlamayı akıllıca olur:

// $access_type can be the result of a function call, an array value, etc.
switch($access_type){
    case 'edit':
        echo '<input type="text" name="username" value="' . $username . '">';
        break;
    case 'readonly':
        echo $username;
        break;
    case NULL:
    default:
        // Don't display anything.
}

Benim soru ne kadar iyi kod büyük parçalar ile bu ölçeği nedir? HTML ve oldukça çok kullanmak 'interaktif özellikleri' bir çift vardır JavaScript seferde birkaç değerlerini geri POST. Biz etkin her rol için bu özel denetim ayrı sürümü olurdu. Bir switch içine her sürümü yapışmasını (satır kod ya da ayrı bir dosya olarak dahil olsun) ... Benzer şekilde, arka uç, POST işlemek için komut rolüne bağlı olarak çeşitli versiyonları olurdu biraz kokuyor.

Bunu yapmak için bir yüz yolu olmalı biliyorum, ama diğer insanlar geçmişte ne yaptın? Eğer bazı bilgiler varsa, bu projede görülecek hiçbir OO olduğu gibi, bir usul tarzı bunu göstermek olabilir! Teşekkürler!

0 Cevap