81 lines
1.9 KiB
PHP
81 lines
1.9 KiB
PHP
<?php
|
|
|
|
class App_Service_V1Auth
|
|
{
|
|
protected $_genericModel;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->_genericModel = new Application_Model_Generic();
|
|
}
|
|
|
|
public function getUser()
|
|
{
|
|
if (Zend_Registry::isRegistered('TOKEN')) {
|
|
return $this->_genericModel->getByColumnName('Users', 'token', Zend_Registry::get('TOKEN'));
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public function controllaPermessiSuOrdine($ordineMapping, $user = null)
|
|
{
|
|
|
|
if (!$user) {
|
|
$user = $this->getUser();
|
|
}
|
|
|
|
switch ($user['role']) {
|
|
case 'admin':
|
|
return true;
|
|
case 'user':
|
|
return $user['id'] === $ordineMapping['ID_Utente'];
|
|
case 'attivita':
|
|
return $user['id'] === $ordineMapping['ID_Attivita'];
|
|
case 'rider':
|
|
return $user['id'] === $ordineMapping['ID_UserRider'];
|
|
default:
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Controlla se il permesso passatto o i permessi sono validi per l'utente loggato
|
|
* @param array $role
|
|
* @param null $user
|
|
* @return bool
|
|
*/
|
|
public function controllaPermessiByRole(array $role, $user = null)
|
|
{
|
|
|
|
if (!$user) {
|
|
$user = $this->getUser();
|
|
}
|
|
|
|
return in_array($user['role'], $role);
|
|
}
|
|
|
|
public function getPermissionWhere($user = null)
|
|
{
|
|
|
|
if (!$user) {
|
|
$user = $this->getUser();
|
|
}
|
|
|
|
switch ($user['role']) {
|
|
case 'admin':
|
|
return [];
|
|
case 'user':
|
|
return ['ID_Utente = ?' => $user['id']];
|
|
case 'attivita':
|
|
return ['ID_Attivita = ?' => $user['id']];
|
|
case 'rider':
|
|
return ['ID_UserRider = ?' => $user['id']];
|
|
default:
|
|
return ['id < ?' => '0']; // forza a non restituire nulla
|
|
}
|
|
|
|
}
|
|
}
|