Esempio n. 1
0
 function deleteAction()
 {
     $table = request()->getTable();
     $id = request()->getId();
     if (!is_null($table) && !is_null($id)) {
         $permission = $table . '_delete';
         $auth = auth()->can($permission);
         if (true === $auth || true === $this->isAdmin) {
             $row = model($table)->find($id);
             if (empty($row)) {
                 $this->forward('home');
             }
             $infos = isAke($this->view->config['tables'], $table);
             $closure = isAke($infos, 'before_delete', false);
             if (false !== $closure && is_callable($closure)) {
                 $closure();
             }
             $crud = new c(model($table));
             $status = $crud->delete($id);
             $closure = isAke($infos, 'after_delete', false);
             if (false !== $closure && is_callable($closure)) {
                 $closure();
             }
             if (true === $status) {
                 $this->forward('list');
             } else {
                 $this->forward('error');
             }
         } else {
             $this->forward('forbidden');
         }
     } else {
         $this->forward('home');
     }
 }