public static function isValid(string $property, HttpContext $httpContext) : bool
 {
     //var_dump($httpContext);
     //echo "<br/>logged User:</br>";
     //var_dump($httpContext->getLoggedUser());
     $loggedUser = $httpContext->getLoggedUser();
     if ($loggedUser != null) {
         $loggedUserId = $httpContext->getLoggedUser()->getId();
         if ($loggedUserId != null) {
             if (preg_match("#Roles=['\"](.*?)['\"]#", $property, $match)) {
                 $roles = explode(",", strtolower($match[1]));
                 //var_dump($roles);
                 $dbRoles = Database::getUserRoles($loggedUserId);
                 //var_dump($dbRoles);
                 //die;
                 foreach ($dbRoles as $dbRole) {
                     $del_val = strtolower($dbRole);
                     // remove from roles if the role is available in the db
                     if (($key = array_search($del_val, $roles)) !== false) {
                         unset($roles[$key]);
                     }
                 }
                 //var_dump($roles);
                 // if all roles are founded the $roles will be empty
                 if (count($roles) == 0) {
                     return true;
                 }
                 return false;
             } else {
                 if ($property == 'Authorize') {
                     return true;
                 }
             }
             return false;
         }
     }
     return false;
 }