Skip to content

Instantly share code, notes, and snippets.

@ferdiunal
Created September 14, 2015 20:46
Show Gist options
  • Save ferdiunal/6b4dd7eacc3389327340 to your computer and use it in GitHub Desktop.
Save ferdiunal/6b4dd7eacc3389327340 to your computer and use it in GitHub Desktop.
Sentinel'de kullanıcının bulunduğu rol'deki izinlerini bir türlü listelemedim, bende getRoles method'u ile birşeyler yapmaya çalıştım. https://cartalyst.com/manual/sentinel/2.0
private function myInarray($getArray = '',array $myArray = []){
// $getArray'yı noktalarından ayıralım
$getArray = explode('.',$getArray);
// Sonra foreach ile listeleyelim
foreach($getArray as $key){
// Eğer $myArray yok ise yada $myArray'da istediğimiz key yok ise
if (!is_array($myArray) || !array_key_exists($key, $myArray)) {
// Sonuç null olarak döner
return null;
}
// Eğer $myArray'da belirtilen anahtar var ise $key'i $myArray['key1']['key2'] Şeklinde listelet
$myArray = &$myArray[$key];
}
// Eğer $myArray'da istenilen anahtarda değer var ise geriye array olarak döndür !
return $myArray;
}
public function getPermissions($permission = null,$user_id = 0)
{
if($user_id){
$user = \Sentinel::findById($user_id);
} else if(!$user_id){
$user = \Sentinel::getUser();
}
$getPermission = $user->getRoles()->first()->permissions;
switch(gettype($permission)){
case "string" :
return $this->myInarray($permission,$getPermission);
break;
case "array" :
foreach ($permission as $per) {
if($this->myInarray($per,$getPermission) === false)
return false;
}
return true;
break;
}
}
// Kullanımı
/**
$this->getPermissions("bla1.bla2",\Sentinel::getUser()->getRoles()->first()->permissions)
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment