我想知道如何实现一些功能来比较每个用户角色的重要性。
我的3个角色是:directeur_cr_,comptable_cr_和salaries_cr _。
directeur_cr_> comptable_cr_> salaries_cr _
在我的循环中,我可以基于某个值(在field_val中)获得所有用户。然后,我查看每个用户的角色。
我想做的是这样:
这个想法是我想让用户扮演最高的角色(在这里,directeur_cr_)。如果没有directeur_cr_,请查找该角色下的角色(因此为comptable_cr_)。在这一关之下,水平也是一样。
我有3个用户:
- 用户1:comptable_cr _
- 用户2:salaries_cr _
- 用户3:directeur_cr _
我的循环实际上正在工作。我有这个结果:
-用户1-导演:错误comptable:正确
-用户2-导演:错误的comptable:错误的薪水:正确的
-用户3-导演:是
我正在寻找的是这个>
-用户3-导演:是
无论是否还有其他角色(因为我想获得最高的角色)。
如果没有可用的Directeur,请改为显示comptable。
如果没有comptable,请显示薪水。
foreach($listeValuesDrupal2 as $valUnique){
echo $valUnique;
$users = \Drupal::entityTypeManager()->getStorage('user')
->loadByProperties(['field_val' => $valUnique]);
dump($users); //show my user with $valUnique in field_val
foreach ($users as $user){
/*
role : directeur_cr_ > comptable_cr_ > salaries_cr_
*/
echo "<br/>------------------------- USER -------------------------<br/>";
$user_has_role_directeur = $user && $user->hasRole('directeur_cr_'); //check if user has this role
echo "directeur : "; dump($user_has_role_directeur);
if(!$user_has_role_directeur){
$user_has_role_comptable = $user && $user->hasRole('comptable_cr_');
echo "comptable : "; dump($user_has_role_comptable);//check if user has this role
if(!$user_has_role_comptable){
$user_has_role_salarie = $user && $user->hasRole('salaries_cr_');
echo "salaries : "; dump($user_has_role_salarie);//check if user has this role
}
}
}
}