1
這似乎是一個基本需求,但無法找到有關該主題的任何資源。SonataUser - 限制可選組
在User Admin窗體中,我需要根據當前用戶的角色過濾可選組。
比方說,我們應該只能選擇我們被授予所有附加角色的組。
我認爲這裏不需要ACL。
我可以使用選民嗎?
在我看來,像一個普通的需要,有人可以指向我的任何資源?
這似乎是一個基本需求,但無法找到有關該主題的任何資源。SonataUser - 限制可選組
在User Admin窗體中,我需要根據當前用戶的角色過濾可選組。
比方說,我們應該只能選擇我們被授予所有附加角色的組。
我認爲這裏不需要ACL。
我可以使用選民嗎?
在我看來,像一個普通的需要,有人可以指向我的任何資源?
正如我看到瘋狂的急於迴應我的問題,我會給我的卑微的貢獻。
我還沒有能夠使用ACL或選民。
所以,我沒有延長choice
這種類型從security.context
和doctrine
服務注入檢索組自定義類型。
該服務有一個函數用於收集有這個小團體的算法:
public function allExistingGroups()
{
$finalGroupsList = array();
/* Get all existing groups */
$groups = $this->doctrine->getRepository('SonataUserBundle:Group')
->findAll();
foreach ($groups as $group) {
$isGranted = true;
foreach ($group->getRoles() as $role) {
if (!$this->securityContext->isGranted($role)) {
$isGranted = false;
}
}
/* User is granted, so he can see the group */
if ($isGranted) {
$finalGroupsList[$group->getId()] = $group->getName();
}
}
return $finalGroupsList;
}
現在,用戶將只能看到組,他被授予的所有角色。
肯定應該有一個更漂亮的解決方案,但這對我來說是訣竅。