public function download(Database $db, Request $request)
 {
     $filter = [];
     if ($keyword = $request->query('keyword')) {
         $filter = ['(name like :keyword or username like :keyword)', ':keyword' => '%' . $keyword . '%'];
     }
     $data = $db->select('name,username,level', 'user', $filter);
     $filename = 'user-report';
     $header = ['Name', 'Username', 'Level'];
     $delimiter = ';';
     $delay = false;
     return $this->csv($filename, $header, $data, $delimiter, $delay);
 }
 public function main(User $user, Request $request, Database $db)
 {
     if ($user->is('admin')) {
         return $this->redirect('admin');
     } elseif ($user->hasBeenLogin()) {
         return $this->redirect('index');
     }
     $username = $request->get('username');
     $password = $request->get('password');
     $error = null;
     if ($request->isPost()) {
         $filter = ['username = ? and password = ?', $username, $password];
         $data = $db->findOne('user', $filter);
         if (empty($data)) {
             $error = 'Login gagal! Username atau password tidak cocok!';
         } else {
             $user->login('admin', $data);
             return $this->redirect('admin');
         }
     }
     $form = $this->form->setData(['username' => $username])->setAttrs(['id' => 'login-form'])->setDefaultLabelAttrs(['class' => 'sr-only'])->setDefaultControlAttrs(['class' => 'form-control form-block']);
     return $this->render(null, ['form' => $form, 'error' => $error]);
 }
 public function account(User $user, Database $db, Request $request)
 {
     $fields = ['username' => $request->get('username', $user->get('username')), 'password' => $request->get('password', $user->get('password')), 'new_password' => $request->get('new_password', $user->get('new_password')), 'name' => $request->get('name', $user->get('name'))];
     $error = null;
     $selfUrl = $this->homeUrl . '/account';
     $labels = $this->app->load('app/config/translations/user-labels.php');
     if ($request->isPost()) {
         $old_password = $user->get('password');
         $rules = ['name,username' => 'required', 'password' => 'required,Password saat ini tidak boleh kosong', '-password' => "equal({$old_password}),Password saat ini tidak valid", 'new_password' => 'minLength(4,allowEmpty)'];
         $error = $this->validation->setData($fields)->setRules($rules)->setLabels($labels)->validate()->getError();
         if (!$error) {
             // handle file
             $filename = $request->baseDir() . 'asset/avatars/user-' . $user->get('id');
             if (Helper::handleFileUpload('avatar', $filename, $this->app->get('imageTypes'))) {
                 $fields['avatar'] = basename($filename);
             }
             if ($fields['new_password']) {
                 $fields['password'] = $fields['new_password'];
             }
             unset($fields['new_password']);
             $filter = ['id = ?', $user->get('id')];
             $saved = $db->update('user', $fields, $filter);
             if ($saved) {
                 $user->register($fields);
                 $user->message('success', 'Data sudah diupdate');
                 return $this->redirect($selfUrl);
             } else {
                 $error = 'Data gagal disimpan!';
             }
         }
         $user->message('error', $error);
     }
     $avatar = $user->get('avatar');
     $avatar = $this->app->asset($avatar ? 'asset/avatars/' . $avatar : 'asset/images/avatar.png');
     $form = $this->form->setData($fields)->setLabels($labels)->setAttrs(['class' => 'form-horizontal', 'enctype' => 'multipart/form-data'])->setDefaultControlAttrs(['class' => 'form-control'])->setDefaultLabelAttrs(['class' => 'form-label col-md-4']);
     return $this->render('profil', ['form' => $form, 'avatar' => $avatar, 'backUrl' => 'index']);
 }
 public function delete(User $user, Database $db, $id)
 {
     $filter = ['id = ? and id <> ?', $id, $user->get('id')];
     $db->delete('user', $filter);
     $user->message('info', 'Data sudah dihapus!');
     return $this->redirect($this->homeUrl);
 }
 public function __construct()
 {
     parent::__construct();
     $this->model = $this->connect($this->name);
 }
Example #6
0
 /**
  * Register container bindings for the application.
  *
  * @return void
  */
 protected function registerCapsuleBindings()
 {
     $this->singleton('capsule', function () {
         $db = new Database($this);
         return $db->getCapsule();
     });
 }