public function actionAssign($id, $action)
{
$post = Yii::$app->request->post();
$roles = $post['roles'];
$manager = Yii::$app->authManager;
$error = [];
if ($action == 'assign') {
foreach ($roles as $name) {
try {
$item = $manager->getRole($name);
$item = $item ?: $manager->getPermission($name);
$manager->assign($item, $id);
} catch (\Exception $exc) {
$error[] = $exc->getMessage();
}
}
} else {
foreach ($roles as $name) {
try {
$item = $manager->getRole($name);
$item = $item ?: $manager->getPermission($name);
$manager->revoke($item, $id);
} catch (\Exception $exc) {
$error[] = $exc->getMessage();
}
}
}
Yii::$app->response->format = Response::FORMAT_JSON;
return [$this->actionRoleSearch($id, 'avaliable', $post['search_av']), $this->actionRoleSearch($id, 'assigned', $post['search_asgn']), $error];
}