UserRolesController.php 1.84 KB
<?php
/**
 *
 * @author Adhidarma <adhisimon@gmail.com>
 */
class UserRolesController extends Controller {
    protected function getModel() {
        $model = new UserRoleModel($this->f3);
        return $model;
    }

    /**
     * Tambah role ke sebuah user.
     */
    function add($f3, $params) {
        $mapper = $this->getModel()->getMapper();
        $item = $mapper->load(array('user_id = ? AND role_id = ?', $params['user_id'], $params['role_id']));

        if (!$item) {
            $item = $this->getModel()->getMapper();
        }

        $item['user_id'] = $params['user_id'];
        $item['role_id'] = $params['role_id'];

        $item->save();
        $f3->reroute("/users/view/" . $params['user_id']);
    }

    /**
     * Meminta konfirmasi penghapusan sebuah role dari sebuah user.
     */
    function deleteConfirmation($f3, $params) {
        $user_model = new UserModel();
        $user = $user_model->getById($params['user_id']);
        $f3->set('user', $user);

        $role_model = new RoleModel();
        $role = $role_model->getById($params['role_id']);
        $f3->set('role', $role);

        $this->setPageTitle('Konfirmasi Penghapusan Kapabilitas');
        $this->setViewFile('user_roles/delete-confirmation.html');
    }

    /**
     * Hapus role dari user.
     */
    function delete($f3, $params) {
        $user_role = $this->getModel();
        $user_role->delete($params['user_id'], $params['role_id']);
        $this->pushAlertToSession('Kapabilitas terhapus', 'alert-success');

        $f3->reroute('/users/view/' . $params['user_id']);
    }

    function rolesByUserId($f3, $params) {
        $model = $this->getModel();
        $user_roles = $model->getByUserId($params['user_id']);
        $f3->set('user_roles', $user_roles);

        $this->setViewFile('user_roles/titles.html');
        $this->setTemplateFile(false);
    }
}