1. Go to this page and download the library: Download erdiko/authorize library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
erdiko / authorize example snippets
class AuthenticationManager implements AuthenticationManagerInterface
{
private $authenticationManager;
public function __construct()
{
// implements UserProviderInterface
$userProvider = new InMemoryUserProvider(
array(
'[email protected]' => array(
'password' => 'asdf1234',
'roles' => array('ROLE_ADMIN'),
),
'[email protected]' => array(
'password' => 'asdf1234',
'roles' => array('ROLE_USER'),
),
)
);
// Create an encoder factory that will "encode" passwords
$encoderFactory = new \Symfony\Component\Security\Core\Encoder\EncoderFactory(array(
// We simply use plaintext passwords for users from this specific class
'Symfony\Component\Security\Core\User\User' => new PlaintextPasswordEncoder(),
));
// The user checker is a simple class that allows to check against different elements (user disabled, account expired etc)
$userChecker = new UserChecker();
// The (authentication) providers are a way to make sure to match credentials against users based on their "providerkey".
$userProvider = array(
new DaoAuthenticationProvider($userProvider, $userChecker, 'main', $encoderFactory, true),
);
$this->authenticationManager = new AuthenticationProviderManager($userProvider, true);
}
public function authenticate(TokenInterface $unauthenticatedToken)
{
try {
$authenticatedToken = $this->authenticationManager->authenticate($unauthenticatedToken);
Authorizer::startSession();
$tokenStorage = new TokenStorage();
$tokenStorage->setToken($authenticatedToken);
$_SESSION['tokenstorage'] = $tokenStorage;
} catch (\Exception $failed) {
// authentication failed
throw new \Exception($failed->getMessage());
}
return $authenticatedToken;
}
}
...
public function _before()
{
$authManager = new AuthenticationManager();
$this->auth = new Authorizer($authManager);
// Run the parent beore filter to prep the theme
parent::_before();
}
...
public function __construct()
{
$authManager = new AuthenticationManager();
$this->auth = new Authorizer($authManager);
}
public function doSomething1()
{
if($this->auth->can("CAN_DO_1")) {
return "success something one";
} else {
throw new \Exception("You are not granted");
}
}
class ExampleValidator implements ValidatorInterface
{
public static function supportedAttributes()
{
return array('IS_PREMIUM_ACCOUNT');
}
public function supportsAttribute($attribute)
{
return in_array($attribute, self::supportedAttributes());
}
public function validate($token)
{
$result = false;
$user = $token->getUser();
if (!$user instanceof UserInterface) {
$result = false;
} else {
$result = ($user->getRole()=='ROLE_PREMIUM');
}
return $result;
}
}
php public function getDashboard()
{
if($this->auth->can("VIEW_ADMIN_DASHBOARD")) {
// Add page data
$this->setTitle('Erdiko Admin Dashboard');
$this->addView('examples/admin/dashboard');
} else {
\erdiko\core\helpers\FlashMessages::set("You SHALL NO Pass!!", "danger");
$this->redirect('/users/login');
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.