Created
August 30, 2021 12:46
-
-
Save alexisljn/a3e1f7761a2c07d123c8a68cae1894ab to your computer and use it in GitHub Desktop.
Ebauche permissions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Il faut ET la permission 1 (OU la permission 2 ET la permission 4) | |
// ET la permission 3 | |
$permissions = [ | |
'and' => [ | |
'permission' => [ | |
'name' => $permission1, | |
'or' => [ | |
'and' => [ | |
'permission' => [ | |
'name' => $permission2 | |
], | |
'permission' => [ | |
'name' => $permission4 | |
] | |
] | |
] | |
], | |
'permission' => [ | |
'name' => $permission3 | |
] | |
] | |
] | |
// A plat (Ne peut pas marcher dans cet etat, il est pas possible d'imbriquer le or dans la permission 1 permettant de l'omettre et de préférer le couple permission 2/permission 4) | |
$permissions = [ | |
'and' => [ | |
'permission' => $permission1, | |
'or' => [ | |
'and' => [ | |
'permission' => $permission2, | |
'permission' => $permission4 | |
] | |
], | |
'permission' => [ | |
'name' => $permission3 | |
] | |
] | |
] | |
// Il faut uniquement la permission 10 | |
$permissions = [ | |
'permission' => [ | |
'name' => $permission10 | |
] | |
] | |
// A plat | |
$permissions = [ | |
'permission' => $permission10 | |
] | |
// Il faut la permission 3 ou la permission 6 | |
$permissions = [ | |
'or' => [ | |
'permission' => [ | |
'name' => $permission3 | |
], | |
'permission' => [ | |
'name' => $permission6 | |
} | |
] | |
] | |
// Le meme ensemble à plat | |
$permissions = [ | |
'or' => [ | |
'permission' => $permission3, | |
'permission' => $permission6 | |
] | |
] | |
// Il faut la permission 5 et la 6 et la 12 | |
$permissions = [ | |
'and' => [ | |
'permission' => [ | |
'name' => $permission5 | |
], | |
'permission' => [ | |
'name' => $permission6 | |
], | |
'permission' => [ | |
'name' => $permission12 | |
] | |
] | |
] | |
// Le meme ensemble mais à plat | |
$permissions = [ | |
'and' => [ | |
'permission' => $permission5, | |
'permission' => $permission6, | |
'permission' => $permission12 | |
] | |
] | |
function userHasPermissions($userOrUserPermissions, $neededPermissionsArray) | |
{ | |
$userPermissions = [10,11,15,3,4]; | |
foreach ($neededPermissionsArray as $keyWord => $value) { | |
if ($keyWord === 'permission') { | |
} elseif ($keyWord === 'and') { | |
} elseif ($keyWord === 'or') { | |
} else { | |
throw 'Ca degage !'; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment