我正在使用FOSUserBundle處理我的應用程序用戶。用戶可以更新他們的用戶名或者被管理員刪除。所有東西都被罰款,我的問題與Symfony ACL有關。更新Symfony2中的安全標識(ACL)
每個用戶都有自己的安全實體在創建時。例如,如果我創建一個帳戶與茂野用戶名,它會導致數據庫這樣的事情(acl_security_identities表):
id | identifier | username
... | ... | ...
23 | my\Bundle\Entity\User-shigeno | 1
(ACL標識使用的用戶名哎喲......爲什麼不!該ID?)現在
,我,茂野,我的用戶名更改爲本田。 Acl_security_identities表保持原樣,所以我的所有權限都被刪除(或者更準確地說,他們並未隨我移動)。
當然,我可以添加新的ACL。但是:
- 這是痛苦的。我必須獲得所有先前的ACL才能複製,更不用說當我更新或刪除用戶時,我無法輕鬆訪問所有安全對象。
- 這是一個很大的安全漏洞,因爲如果沒有刪除以前的ACL和一個新的客戶選擇的用戶名重野 ... BAM,它的聖誕樹。
如何更新(並刪除如果我刪除用戶)ACL安全身份?
注:我見過this similar subject。它沒有回答更新問題,此外,在這種情況下做一個原始的SQL請求是非常不安全的(是的,它也很醜陋)。
正是我需要的。謝謝。遺憾的是沒有記錄。 –
現在在文檔中:http://symfony.com/doc/current/cookbook/security/acl_advanced.html – BigJ