2015-01-06 59 views
0

我正在使用FOSUserBundle處理我的應用程序用戶。用戶可以更新他們的用戶名或者被管理員刪除。所有東西都被罰款,我的問題與Symfony ACL有關。更新Symfony2中的安全標識(ACL)

每個用戶都有自己的安全實體在創建時。例如,如果我創建一個帳戶與茂野用戶名,它會導致數據庫這樣的事情(acl_security_identities表):

id | identifier     | username 
... | ...       | ... 
23 | my\Bundle\Entity\User-shigeno | 1 

(ACL標識使用的用戶名哎喲......爲什麼不!該ID?)現在

,我,茂野,我的用戶名更改爲本田Acl_security_identities表保持原樣,所以我的所有權限都被刪除(或者更準確地說,他們並未隨我移動)。

當然,我可以添加新的ACL。但是:

  1. 這是痛苦的。我必須獲得所有先前的ACL才能複製,更不用說當我更新或刪除用戶時,我無法輕鬆訪問所有安全對象。
  2. 這是一個很大的安全漏洞,因爲如果沒有刪除以前的ACL和一個新的客戶選擇的用戶名重野 ... BAM,它的聖誕樹。

如何更新(並刪除如果我刪除用戶)ACL安全身份?

注:我見過this similar subject。它沒有回答更新問題,此外,在這種情況下做一個原始的SQL請求是非常不安全的(是的,它也很醜陋)。

回答