protected function installModuleUpload()
    {
        $this->controlAccess('file_upload');
        $this->controlAccess('module_installer_upload');

        $file = $this->getSubmitted('file');
        $result = $this->install->fromZip($file);

        if ($result !== true) {
            $this->redirect('', $result, 'warning');
        }

        if ($this->install->isUpdate()) {
            $message = $this->text('Module has been updated. Previous version has been saved to a <a href="@url">backup</a> file', array('@url' => $this->url('admin/report/backup')));
        } else {
            $message = $this->text('Module has been uploaded. You should <a href="@url">enable</a> it manually', array('@url' => $this->url('admin/module/list')));
        }

        $this->redirect('', $message, 'success');
    }