リードを管理するための1つのコンポーネントを作成しています[リードまたはクライアントリードはフロントエンドから送信されます]。このコンポーネントでは、このようなACLを実装したいと思います。
私のクライアントの要件...
SuperAdmin
|— Manager
|—|— Administrator
考慮しAdministrator
てManager
ください。joomlaのデフォルトACLと比較しないでください。
すべてのリードはsuperadminに表示されます。Superadminはリードを他のユーザーに割り当てます。
ログインしたユーザーがである場合、彼はすべてのユーザーがグループおよびグループManager
の下にいるユーザーをリードしていることを確認できます。Manager
Administrator
ログインしたユーザーがの場合、Administrator
管理者には最後のグループであるサブグループがないため、他のリードを表示する権限がありません。
私は次のクエリを使用しています
$query->select( 'c.id as groupid,c.title AS group_name');
$query->from('#__usergroups AS c');
$query->join('LEFT', '#__usergroups AS s ON (s.lft <= c.lft AND s.rgt >= c.rgt) OR (s.lft > c.lft AND s.rgt < c.rgt)' );
$query->where('s.id = "'.$UG.'"');
$query->order('c.lft');
$db->setquery($query);
$gids = $db->loadResultArray();
$gids = implode(",",$gids);
$UG
=>ログインしたユーザーgroupid。
ログインしているユーザーがManager
、で$UG
ある場合、6
出力
groupid group_name
1 Public
6 Manager
7 Administrator
ログインしているユーザーがAdministrator
、で$UG
ある場合、7
それも同じ答えを返します。
Manager
ログインしている場合
出力は
groupid group_name
6 Manager
7 Administrator
Administrator
ログインしている場合
出力は
groupid group_name
7 Administrator
または空
誰か助けてください…。