Skip to content

Instantly share code, notes, and snippets.

@alexisljn
Created August 30, 2021 12:46
Show Gist options
  • Save alexisljn/a3e1f7761a2c07d123c8a68cae1894ab to your computer and use it in GitHub Desktop.
Save alexisljn/a3e1f7761a2c07d123c8a68cae1894ab to your computer and use it in GitHub Desktop.
Ebauche permissions
<?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