<?php 
/** 
 * Copyright (c) 2016 Jorge Patricio Castro Castillo MIT License. 
 */ 
include "../lib/BladeOne.php"; 
use eftec\bladeone\BladeOne; 
 
$views = __DIR__ . '/views'; 
$compiledFolder = __DIR__ . '/compiled'; 
$blade=new BladeOne($views,$compiledFolder,BladeOne::MODE_SLOW); 
 
 
 
//<editor-fold desc="Authentication example"> 
 
 
// This new lines are optional. Blade has build in validations by default. However, you can personaliza your own authentication. 
$blade->setCanFunction(function($action,$subject=null) { 
    global $blade; 
    if ($subject=='noallowed') return false; 
    return in_array($action,$blade->currentPermission); 
}); 
 
$blade->setAnyFunction(function($array) { 
    global $blade; 
    foreach($array as $permission) { 
        if (in_array($permission,$blade->currentPermission)) return true; 
    } 
    return false; 
}); 
 
//</editor-fold> 
 
 
$blade->setAuth("john","admin",['edit','delete']); 
try { 
    echo $blade->run("Test2.auth", ['title'=>'Testing an user that is administrator. He could edit,delete and has the role of administrator']); 
} catch (Exception $e) { 
    echo "error found ".$e->getMessage()."<br>".$e->getTraceAsString(); 
} 
 
$blade->setAuth("mary","user",['view']); 
try { 
    echo $blade->run("Test2.auth", ['title'=>'Testing an user that is a normal user. She could only view and has the role of user']); 
} catch (Exception $e) { 
    echo "error found ".$e->getMessage()."<br>".$e->getTraceAsString(); 
} 
 
$blade->setAuth(null); 
try { 
    echo $blade->run("Test2.auth", ['title'=>'Testing an user that is anonymous.']); 
} catch (Exception $e) { 
    echo "error found ".$e->getMessage()."<br>".$e->getTraceAsString(); 
}
 
 |