SfDoctrineGuard eklentisi kullanıldığında, otomatik olarak ben sistemin kullanıcıları düzenlemek ve onlara izinleri atayabilirsiniz backend yönetim işlevini oluşturur.
Bu yüzden ben seçmek için mevcut izinleri dahil olmak üzere, kullanıcının bilgileri ile sunulan am http://.../backend_dev.php/sf_guard_user/:id/edit
burada ziyaret edin.
Varsayılan izinleri çoklu seçim kutusu olarak gösterilen, HTML şöyle:
<select name="sf_guard_user[permissions_list][]" multiple="multiple" id="sf_guard_user_permissions_list">
<option value="1">Permission1</option>
<option value="2">Permission2</option>
<option value="3">Permission3</option>
<option value="4">Permission4</option>
</select>
Ne ben tercih ediyorum onay kutularını bir listesidir. Bu yüzden etrafında arandı ve ben seçeneği eklerseniz aşağıdaki kodu ayarlamak true "genişletilmiş" bulundu:
'permissions_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'sfGuardPermission', 'expanded' => true,)),
Kodu bu dosyanın parçasıdır: lib / form / doktrin / sfDoctrineGuardPlugin / baz / BasesfGuardUserForm.class.php. Ben (yazılmasına değişimlerin potansiyel sfDoctrineGuard Hiç yeniden monte edilmelidir) bu dosyayı düzenledikten gerektiğini sanmıyorum ama o iş yapmak için başka bir yol gelmiyordu.
Aşağıdaki gibi oluşturulan HTML:
<ul class="checkbox_list">
<li><input name="sf_guard_user[permissions_list][]" type="checkbox" value="1" id="sf_guard_user_permissions_list_1" /> <label for="sf_guard_user_permissions_list_1">Permission1</label></li>
<li><input name="sf_guard_user[permissions_list][]" type="checkbox" value="2" id="sf_guard_user_permissions_list_2" /> <label for="sf_guard_user_permissions_list_2">Permission2</label></li>
<li><input name="sf_guard_user[permissions_list][]" type="checkbox" value="3" id="sf_guard_user_permissions_list_3" /> <label for="sf_guard_user_permissions_list_3">Permission3</label></li>
<li><input name="sf_guard_user[permissions_list][]" type="checkbox" value="4" id="sf_guard_user_permissions_list_4" /> <label for="sf_guard_user_permissions_list_4">Permission4</label></li>
</ul>
Ben şimdi ne yapmak gerekir onların öneki dayalı izinleri ayrılmıştır. Ben izinleri user_action1 adını vermişti Örneğin, user_action2, file_action1, file_action2, onlar gibi görüntüler:
User
checkbox (custom label) Action One
checkbox Action Two
File
checkbox (custom label) Action One
checkbox Action Two
ama nerede bu başlamak için hiçbir fikrim yok. Düzenlemek için bir şablon olsaydı kolay olurdu ama ben Formlar çerçeve ile uğraşıyorum çünkü şablonlar anında oluşturulan benim anlayış - benim symonfy önbellek klasöründe bunları görebilirsiniz.
Bunu nasıl hakkında gitmek istiyorsunuz?
Ben sfWidgetFormDoctrineChoice gibi aynı sınıfını genişleten kendi sfWidgetFormDoctrineChoicePermission sınıf yazmaya başladı ama istenilen çıkışı için doğru işleme fonksiyonlarını düzenlemek için mücadele ediyorum. Bu iş hakkında gitmek için doğru yolu nedir?
Ben de (yukarıdaki ile aynı) düzenleme kullanıcı sayfanın içine benim sfGuardUserProfile modeli entegre etmek gerekir, ben sfGuardUser eklenti modülü için generator.yml dosyasını düzenleme ve sadece sfGuardUserProfile tablodaki alan adlarını ekleyerek çalışması yapacağını somwhere okudum, ama ne yazık ki öyle değil.