public function indexAction($action = null, $role_id = null, $user_id = null) { // Add a user to a mailing list if ($this->request->isPost()) { $user_id = $this->request->getPost("user_id"); $role_id = $this->request->getPost("role_id"); if (!empty($user_id)) { // If user and corresponding role already exist if ($mail = PMailList::findFirst("role_id={$role_id} AND user_id={$user_id}")) { $this->flash->error("Получатель уже существует"); } else { $mail_list = new PMailList(); $mail_list->role_id = $role_id; $mail_list->user_id = $user_id; if ($mail_list->save()) { $this->flash->success("Получатель добавлен"); } } return $this->response->redirect("mailer/index"); } } // Delete a user from a mailing list if ($action == 'delete') { if ($mail = PMailList::findFirst("role_id={$role_id} AND user_id={$user_id}")) { if (!$mail->delete()) { $this->flash->error("Произошла ошибка"); } else { $this->flash->success("Получатель удален"); } return $this->response->redirect("mailer/index"); } } // List of roles foreach ($this->roles as $alias) { $role = Roles::findFirst("alias='{$alias}'"); $roles[$role->id] = $role->name; } $this->view->roles = $roles; // List of users subscribed $list = []; $all = PMailList::find(); foreach ($all as $one) { $list[] = [$one->role_id => [$one->user_id => $one->Accounts->name]]; } $this->view->list = $list; }
public function get_all_permissions() { // $request = $this->get_request(); // $id_user = $request->id; $id_user = 1; $role_acos = array(); $user = Users::findFirst($id_user); foreach ($user->RolesUsers as $rol_usuario) { $roles = Roles::findFirst($rol_usuario->getIdRole()); foreach ($roles->RolesPermissions as $rol_permission) { $role_acos[] = $rol_permission->Permissions->getIdAco(); } } $user_acos = array(); $user = Users::findFirst($id_user); foreach ($user->UsersPermissions as $user_permission) { $user_acos[] = $user_permission->Permissions->getIdAco(); } $merge_permissions = array_merge($role_acos, $user_acos); $result = array_unique($merge_permissions); return $result; }