<?php
$Permissoes = User::getUser(true);
if (!$Permissoes) {
    User::blockAction("Você não tem permissão para acessar esta tela");
}
class DownloadsController extends GxController {

    var $help = 'Manutenção de Downloads. ';

    public function actionView($id) {
        $this->render('view', array(
            'model' => $this->loadModel($id, 'Downloads'),
        ));
    }

    public function actionCreate() {
        $model = new Downloads;
        $permissoes_array = array(12,15,20);
        if (!in_array(User::getPrivilegio(), $permissoes_array)) {
                User::blockAction('Usuário sem permissão de acesso a criação de downloads.');
        }

        if (isset($_POST['Downloads'])) {
            $model->setAttributes($_POST['Downloads']);
            $model->Arquivo = CUploadedFile::getInstance($model, 'Arquivo');
            $continue = true;
            $continue = $model->enviaArquivoFTP();
            if ($continue) {
                if ($model->save()) {
                    if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                        Yii::app()->end();
                    } else {
                        $this->redirect(array('view', 'id' => $model->DWN_ID));
                    }
                }
            } else {
                Yii::app()->user->setFlash('error', 'Houve um erro ao tentar salvar o arquivo, por favor tente novamente.');
            }
        }
        $this->render('create', array('model' => $model));

    }

    public function actionUpdate($id) {
        $model = $this->loadModel($id, 'Downloads');
        $permissoes_array = array(12,15,20);
        if (!in_array(User::getPrivilegio(), $permissoes_array)) {
                User::blockAction('Usuário sem permissão de acesso a edição de downloads.');
        }

        $model->origemNumerico();

        if (isset($_POST['Downloads'])) {
            Downloads::removeFTP($id);
            $model->setAttributes($_POST['Downloads']);
            $model->Arquivo = CUploadedFile::getInstance($model, 'Arquivo');
            $continue = true;
            $continue = $model->enviaArquivoFTP();

            if ($continue) {
                $model->DWN_DTATUALIZACAO = date("Y-m-d H:i:s");
                if ($model->save()) {
                    $this->redirect(array('view', 'id' => $model->DWN_ID));
                }
            } else {
                Yii::app()->user->setFlash('error', 'Houve um erro ao tentar salvar o arquivo, por favor tente novamente.');
            }
        }
        $this->render('update', array('model' => $model));
    }

    public function actionDelete($id) {
        $model = $this->loadModel($id, 'Downloads');
        $permissoes_array = array(12,15,20);
        if (!in_array(User::getPrivilegio(), $permissoes_array)) {
                User::blockAction('Usuário sem permissão de acesso a exclusão de downloads.');
        }
        if (Yii::app()->getRequest()->getIsPostRequest()) {
            Downloads::removeFTP($id);
            $model->delete();

            if (!Yii::app()->getRequest()->getIsAjaxRequest()) {
                $this->redirect(array('admin'));
            }

        } else {
            throw new CHttpException(400, 'Sua solicitação é inválida.');
        }

    }

    public function actionAdmin() {
        $model = new Downloads('search');
        $model->unsetAttributes();
        $permissoes_array = array(1,2,3,12,15,20);
        $can_create = false;
        if (!in_array(User::getPrivilegio(), $permissoes_array)) {
            $botoes = '{view} {download}';
        } else {
            $botoes = '{view} {download} {update} {delete}';
            $can_create = true;
        }

        if (isset($_GET['Downloads'])) {
            $model->setAttributes($_GET['Downloads']);
        }

        $this->render('admin', array(
            'model' => $model, 'can_create' => $can_create,
            'botoes' => $botoes
        ));
    }
}