O Laravel não vem com nenhum gerenciamento de função embutido. Se você tem um usuário e modelo de função configurado e já tem um usuário, função e tabela user_role criada, então você pode usar as duas funções a seguir em seu modelo de usuário para adicionar permissões para um usuário em massa com base em certos “títulos”.
Nota: Esta função precisará ser editada um pouco para corresponder ao seu aplicativo específico.
/**
* Get key in array with corresponding value
*
* @return int
*/
private function getIdInArray($array, $term)
{
foreach ($array as $key => $value) {
if ($value == $term) {
return $key;
}
}
throw new UnexpectedValueException;
}
/**
* Add roles to user to make them a concierge
*/
public function makeEmployee($title)
{
$assigned_roles = array();
$roles = array_fetch(Role::all()->toArray(), 'name');
switch ($title) {
case 'super_admin':
$assigned_roles[] = $this->getIdInArray($roles, 'edit_customer');
$assigned_roles[] = $this->getIdInArray($roles, 'delete_customer');
case 'admin':
$assigned_roles[] = $this->getIdInArray($roles, 'create_customer');
case 'concierge':
$assigned_roles[] = $this->getIdInArray($roles, 'add_points');
$assigned_roles[] = $this->getIdInArray($roles, 'redeem_points');
break;
default:
throw new Exception("The employee status entered does not exist");
}
$this->roles()->attach($assigned_roles);
}
Escrevi uma postagem no blog que descreve isso em mais detalhes em: http://alexsears.com/article/adding-roles-to-laravel-users