Initial Commit
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user