Example #1
0
 public function update($id)
 {
     $this->form_validation->set_rules('name', 'Name', 'trim|required');
     if ($this->form_validation->run() == FALSE) {
         $group = sentinel()->findRoleBySlug('edt');
         $data['kategori'] = Model\Portal\Category::findOrFail($id);
         $data['kategori_lists'] = $this->model->getLists($id);
         $data['users'] = $group->users->pluck('email', 'id')->toArray();
         $this->template->build('kategori_edit', $data);
     } else {
         $kategori['name'] = $this->input->post('name');
         $kategori['description'] = $this->input->post('description');
         $kategori['parent'] = $this->input->post('parent');
         $editor = set_value('editor', []);
         $category = Model\Portal\Category::findOrFail($id);
         $category->update($kategori);
         $category->editors()->sync($editor);
         if ($res == TRUE) {
             set_message_success('Kategori berhasil diperbarui.');
             redirect('kategori');
         } else {
             set_message_error('Kategori gagal diperbarui.');
             redirect('kategori/update');
         }
     }
 }
Example #2
0
 public function getKatByUser()
 {
     $user_id = sentinel()->getUser()->id;
     $data = array('konsultasi_kategori.name', 'konsultasi_kategori.description', 'konsultasi_user_has_kategori.*');
     $get = $this->db->select($data)->from('konsultasi_user_has_kategori')->join('konsultasi_kategori', 'konsultasi_user_has_kategori.id_kategori=konsultasi_kategori.id')->where('konsultasi_user_has_kategori.user_id', $user_id)->get();
     return $get->result();
 }
Example #3
0
 public function detail($id)
 {
     $this->form_validation->set_rules('isi', 'Isi', 'required');
     if ($this->form_validation->run() == FALSE) {
         $detail['konsultasi'] = $this->M_konsultasi->getByIdKonsultasi($id);
         $detail['kategori'] = $this->M_konsultasi->getKatByKons($id);
         $balasan = collect($this->M_konsultasi->getReply($id));
         $detail['reply'] = pagination($balasan, 3, 'konsultasi/detail/' . $id, 'bootstrap_md');
         $this->template->build('detail', $detail);
     } else {
         $config['upload_path'] = PATH_KONSULTASI_ATTACHMENT;
         $config['allowed_types'] = 'gif|jpg|jpeg|png|pdf|doc|xls|xlsx|docx|zip|txt|ppt|pptx';
         $config['max_size'] = '10000';
         $this->load->library('upload', $config);
         if (!$this->upload->do_upload('files')) {
             $reply = array('isi' => set_value('isi', '', FALSE), 'id_konsultasi' => $id, 'id_user' => sentinel()->getUser()->id);
             $updateat = date('Y-m-d H:i:s');
         } else {
             $file_data = $this->upload->data();
             $reply = array('attachment' => $file_data['file_name'], 'isi' => set_value('isi', '', FALSE), 'id_konsultasi' => $id, 'id_user' => sentinel()->getUser()->id);
             $updateat = date('Y-m-d H:i:s');
         }
         $id_konsultasi = set_value('id_konsultasi');
         $update = $this->M_konsultasi->updatedAt($updateat, $id_konsultasi);
         $save = $this->M_konsultasi->sendReply($reply, $id_konsultasi);
         redirect('dashboard/detail/' . $id);
     }
 }
Example #4
0
 protected function generateNavigator()
 {
     $role = sentinel()->getUser()->roles->pluck('slug')->toArray();
     $menus = $this->getMenusByRole($role);
     $template = $this->load->view('template/menus', compact('menus'), TRUE);
     $this->template->set('navigator', $template);
     return $template;
 }
Example #5
0
 public function pengampu()
 {
     $data['users'] = sentinel()->findRoleBySlug('ta')->users->pluck('email', 'id')->toArray();
     $data['getKategori'] = $this->model->getAllGroupByUser();
     // $data['getUser']    	= $this->model->getByUser();
     $data['kategori_list'] = $this->model->getKategoriList();
     $this->template->build('pengampu', $data);
 }
Example #6
0
 public function __construct()
 {
     $this->user = sentinel()->getUser();
     $this->course = new Course();
     $this->category = new Category();
     $this->chapter = new Chapter();
     $this->attachment = new Attachment();
 }
Example #7
0
 public function __construct()
 {
     $this->model = new Model\Portal\Article();
     $this->imageManager = new ImageManager();
     $this->user = sentinel()->check();
     $this->categories = [];
     $this->tags = [];
 }
Example #8
0
 public function check()
 {
     if (!sentinel()->check()) {
         redirect(login_url(), 'refresh');
     }
     if (!sentinel()->inRole($this->roles)) {
         redirect(site_url(), 'refresh');
     }
 }
Example #9
0
 public function onlyAllowEditor()
 {
     if (sentinel()->inRole('edt')) {
         $user = sentinel()->getUser();
         $allowed_ids = $user->editorcategory->pluck('id')->toArray();
         $this->db->group_start()->where_in('id', $allowed_ids)->or_where_in('parent', $allowed_ids)->group_end();
     }
     return $this;
 }
Example #10
0
 public function __construct()
 {
     parent::__construct();
     $this->load->database();
     $this->load->model(array('Model_faq' => 'model_faq'));
     if (!sentinel()->check()) {
         redirect(login_url());
     }
 }
Example #11
0
 public function index()
 {
     if (sentinel()->inRole('ins')) {
         redirect('dashboard', 'refresh');
         return;
     }
     $popular = $this->repository->getPopular()->take(4);
     $latest = $this->repository->getLatest()->take(8);
     $this->template->build('index', compact('popular', 'latest'));
 }
Example #12
0
 public function check()
 {
     if (!sentinel()->check()) {
         redirect(login_url(), 'refresh');
     }
     if (!sentinel()->inRole($this->roles)) {
         set_message_error('Anda tidak mempunyai hak akses.');
         redirect(login_url(), 'refresh');
     }
 }
Example #13
0
 /**
  * Run Method.
  *
  * Write your database seeder using this method.
  *
  * More information on writing seeders is available here:
  * http://docs.phinx.org/en/latest/seeding.html
  */
 public function run()
 {
     $this->execute('DELETE FROM role_users');
     $role = sentinel()->getRoleRepository()->createModel();
     $role->truncate();
     $roles = ['su' => 'Super Admin', 'adm' => 'Admin', 'edt' => 'Editor', 'ctr' => 'Contributor', 'ins' => 'Instructor', 'lnr' => 'Learner', 'pcp' => 'Principal', 'mdr' => 'Moderator', 'ast' => 'Asisten', 'pus' => 'Pustakawan', 'ta' => 'Tenaga Ahli'];
     foreach ($roles as $slug => $name) {
         $role->create(compact('slug', 'name'));
     }
 }
Example #14
0
 public function setUser($user)
 {
     if ($user instanceof User) {
         $this->user = $user;
     } elseif (is_numeric($user)) {
         $this->user = User::findOrFail($user);
     } else {
         $this->user = sentinel()->getUser();
     }
     return $this;
 }
Example #15
0
 public function show($category, $id, $name)
 {
     $this->medialib = new Library\Media\Media();
     $modelMedia = new Library\Media\Model\Media();
     $user = sentinel()->getUser();
     $name = urldecode($name);
     $media = $this->medialib->getMedia()->where('file_name', 'like', $name . '%')->findOrFail($id);
     $data = ['category' => $media->category, 'media' => $media];
     $modelMedia->resolveVisitorUnique($user, $media->id);
     $this->template->build('single', $data);
 }
Example #16
0
 function user($user = null)
 {
     if ($user == null) {
         return sentinel()->getUser();
     } elseif ($user instanceof \Cartalyst\Sentinel\Users\UserInterface) {
         return sentinel()->findById($user->id);
     } elseif (is_numeric($user)) {
         return sentinel()->findById($user);
     } else {
         return null;
     }
 }
Example #17
0
 public function join($slug)
 {
     $this->repository->set($slug);
     $requirements = $this->repository->checkRequirements();
     if (!$requirements->isEmpty()) {
         $this->template->build('requirement', compact('requirements'));
     } else {
         $this->repository->addMember(sentinel()->getUser());
         $course = $this->repository->get();
         redirect('course/show/' . $course->slug, 'refresh');
     }
 }
Example #18
0
 public function edit($id)
 {
     $category = Model\Forum\Category::findOrFail($id);
     $this->form_validation->set_rules('name', 'Nama', 'required');
     if ($this->form_validation->run() == FALSE) {
         $data['category'] = $category;
         $data['users'] = sentinel()->findRoleBySlug('ta')->users->pluck('email', 'id')->toArray();
         $this->template->build('category_edit', $data);
     } else {
         $category->name = set_value('name');
         $category->save();
         $category->users()->sync(set_value('tenagaahli', []));
         set_message_success('Kategori forum berhasil diperbarui.');
         redirect('forum/category', 'refresh');
     }
 }
Example #19
0
 /**
  * Run Method.
  *
  * Write your database seeder using this method.
  *
  * More information on writing seeders is available here:
  * http://docs.phinx.org/en/latest/seeding.html
  */
 public function run()
 {
     $user = sentinel()->getUserRepository()->createModel();
     Model\Activation::truncate();
     Model\Throttle::truncate();
     Model\Profile::truncate();
     $user->truncate();
     $users = ['su' => ['superadmin1', 'superadmin2'], 'adm' => ['admin1', 'admin2'], 'edt' => ['editor1', 'editor2'], 'ctr' => ['contributor1', 'contributor2'], 'ins' => ['instructor1', 'instructor2'], 'lnr' => ['learner1', 'learner2', 'kader1', 'kader2'], 'pcp' => ['principal1', 'principal2'], 'mdr' => ['moderator1', 'moderator2'], 'ast' => ['asisten1', 'asisten2'], 'pus' => ['pustakawan1', 'pustakawan2'], 'ta' => ['tenagaahli1', 'tenagaahli2']];
     foreach ($users as $role_slug => $usernames) {
         $role = sentinel()->findRoleBySlug($role_slug);
         foreach ($usernames as $username) {
             $user = sentinel()->registerAndActivate(['email' => $username . '@desamembangun.go.id', 'password' => '123']);
             $role->users()->attach($user);
             $user->profile()->update(['first_name' => $role->name]);
         }
     }
 }
Example #20
0
 /**
  * {@inheritDoc}
  */
 public function complete(UserInterface $user, $code, $password)
 {
     $expires = $this->expires();
     $reminder = $this->createModel()->newQuery()->where('user_id', $user->getUserId())->where('code', $code)->where('completed', false)->where('created_at', '>', $expires)->first();
     if ($reminder === null) {
         return false;
     }
     $credentials = compact('password');
     $valid = $this->validateUser($credentials, $user->getUserId());
     if ($valid === false) {
         return false;
     }
     sentinel()->update($user->getUserId(), $credentials);
     $reminder->fill(['completed' => true, 'completed_at' => Carbon::now()]);
     $reminder->save();
     return true;
 }
Example #21
0
 public function index()
 {
     $this->form_validation->set_rules('email', 'Email', 'trim|valid_email|required');
     $this->form_validation->set_rules('password', 'Password', 'required');
     if ($this->form_validation->run() == FALSE) {
         $this->template->set_layout('login');
         $this->template->build('login');
     } else {
         $email = set_value('email');
         $password = set_value('password');
         $credentials = compact('email', 'password');
         if (sentinel()->authenticate($credentials)) {
             redirect('/', 'refresh');
         } else {
             set_message_error('Username atau password salah.');
             redirect('login', 'refresh');
         }
     }
 }
Example #22
0
 public function index()
 {
     $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
     $this->form_validation->set_rules('password', 'Password', 'required');
     if ($this->form_validation->run() == FALSE) {
         keepValidationErrors();
         $this->template->set_layout('login');
         $this->template->build('login');
     } else {
         $credentials = ['email' => set_value('email'), 'password' => set_value('password')];
         if (sentinel()->authenticate($credentials)) {
             $redirect_url = dashboard_url();
             redirect($redirect_url, 'refresh');
         } else {
             set_message_error('Email atau password Anda salah.');
             redirect(login_url(), 'refresh');
         }
     }
 }
Example #23
0
 public function saveUpdateProfile($id)
 {
     $user = array('email' => $this->input->post('email'));
     $profile = array('first_name' => set_value('first_name'), 'last_name' => set_value('last_name'), 'gender' => set_value('gender'), 'tempat_lahir' => set_value('tempat_lahir'), 'tanggal_lahir' => set_value('tanggal_lahir'), 'address' => set_value('address'), 'desa_id' => set_value('desa'), 'avatar' => set_value('avatar'));
     $userModel = sentinel()->findById($id);
     $userModel->fill($user);
     $userModel->save();
     $userModel->profile()->update($profile);
     $action = $this->input->post('avatar[action]');
     $avatar = $this->input->post('avatar[src]');
     if ($action === 'upload') {
         $this->model->setAvatar($id, $avatar);
     } elseif ($action === 'remove') {
         $this->model->removeAvatar($id);
     }
     if ($userModel->id) {
         set_message_success('User berhasil diperbarui.');
         redirect('user/updateProfile/' . $id);
     } else {
         set_message_error('User gagal diperbarui.');
         redirect('user/updateProfile/' . $id);
     }
 }
Example #24
0
 public function submit()
 {
     // 1. Prepare from input
     $input = collect($this->input->post('course'));
     // 2. Create Course
     $course = new Model\Kelas\Course();
     $course->name = $input->get('name');
     $course->description = $input->get('description', '', FALSE);
     $course->days = $input->get('days');
     $course->status = 'draft';
     $course->category()->associate($input->get('category_id'));
     $course->instructor()->associate(sentinel()->getUser());
     $course->save();
     // 3. Create Folder Content and Upload Images
     $kelas_content = PATH_KELASONLINE_CONTENT . '/' . $course->id;
     if (!is_dir($kelas_content)) {
         mkdir($kelas_content, 0775);
     }
     $imageManager = new ImageManager();
     // 3.a. Featured image
     $featured = $this->input->post('featured[src]');
     if (!empty($featured)) {
         $image = $imageManager->make($featured);
         if ($image->mime == 'image/jpeg') {
             $extension = '.jpg';
         } elseif ($image->mime == 'image/png') {
             $extension = '.png';
         } elseif ($image->mime == 'image/gif') {
             $extension = '.gif';
         } else {
             $extension = '';
         }
         $prefix = 'featured_';
         $filename = $prefix . $course->id . $extension;
         $kelas_content = PATH_KELASONLINE_CONTENT . '/' . $course->id;
         $image->save($kelas_content . '/' . $filename);
         $course->featured = $filename;
         $course->save();
     }
     // 3.b. Thumbnail image
     $thumbnail = $this->input->post('thumbnail[src]');
     if (!empty($thumbnail)) {
         $image = $imageManager->make($thumbnail);
         if ($image->mime == 'image/jpeg') {
             $extension = '.jpg';
         } elseif ($image->mime == 'image/png') {
             $extension = '.png';
         } elseif ($image->mime == 'image/gif') {
             $extension = '.gif';
         } else {
             $extension = '';
         }
         $prefix = 'thumbnail_';
         $filename = $prefix . $course->id . $extension;
         $image->save($kelas_content . '/' . $filename);
         $course->thumbnail = $filename;
         $course->save();
     }
     // 4. Chapters
     $chapters = collect($input->get('chapters'));
     $chapters->each(function ($chapter) use($course) {
         $chapter = collect($chapter);
         $modelChapter = new Model\Kelas\Chapter();
         $modelChapter->name = $chapter->get('name');
         $modelChapter->content = $chapter->get('content');
         $modelChapter->order = $chapter->get('order');
         $modelChapter->course()->associate($course);
         $modelChapter->save();
         // 5. Quiz Chapter
         $quiz = collect($chapter->get('quiz'));
         $modelQuiz = new Model\Kelas\Quiz();
         $modelQuiz->name = $quiz->get('name');
         $modelQuiz->time = $quiz->get('time');
         $modelQuiz->chapter()->associate($modelChapter);
         $modelQuiz->save();
         $questions = collect($quiz->get('questions'));
         $questions->each(function ($question) use($modelQuiz, $modelChapter, $course) {
             $question = collect($question);
             $modelQuestion = new Model\Kelas\QuizQuestion();
             $modelQuestion->question = $question->get('question');
             $modelQuestion->option_a = $question->get('option_a');
             $modelQuestion->option_b = $question->get('option_b');
             $modelQuestion->option_c = $question->get('option_c');
             $modelQuestion->option_d = $question->get('option_d');
             $modelQuestion->correct = $question->get('correct');
             $modelQuestion->quiz()->associate($modelQuiz);
             $modelQuestion->save();
         });
         // 6. Attachment
         $attachments = collect($chapter->get('attachments'));
         $attachment_path = PATH_KELASONLINE_CONTENT . '/' . $course->id . '/chapter_' . $modelChapter->id;
         if (!is_dir($attachment_path)) {
             mkdir($attachment_path, 0775);
         }
         $attachments->each(function ($attachment) use($modelChapter, $course) {
             $attachment = collect($attachment);
             $modelAttachment = new Model\Kelas\Attachment();
             $modelAttachment->filename = $attachment->get('filename');
             $modelAttachment->filetype = $attachment->get('filetype');
             $modelAttachment->filesize = $attachment->get('filesize');
             $modelAttachment->chapter()->associate($modelChapter);
             $modelAttachment->save();
             // 6.a. Uploading attachment
             $file_encoded = $attachment->get('dataurl');
             $file_encoded = explode(',', $file_encoded);
             $file_base64 = $file_encoded[1];
             $fp = fopen($modelAttachment->filepath, 'w+');
             fwrite($fp, base64_decode($file_base64));
             fclose($fp);
         });
     });
     // 7. Exam
     $exam = collect($input->get('exam'));
     $modelExam = new Model\Kelas\Exam();
     $modelExam->name = $exam->get('name');
     $modelExam->time = $exam->get('time');
     $modelExam->course()->associate($course);
     $modelExam->save();
     $questions = collect($exam->get('questions'));
     $questions->each(function ($question) use($modelExam, $course) {
         $question = collect($question);
         $modelQuestion = new Model\Kelas\ExamQuestion();
         $modelQuestion->question = $question->get('question');
         $modelQuestion->option_a = $question->get('option_a');
         $modelQuestion->option_b = $question->get('option_b');
         $modelQuestion->option_c = $question->get('option_c');
         $modelQuestion->option_d = $question->get('option_d');
         $modelQuestion->correct = $question->get('correct');
         $modelQuestion->exam()->associate($modelExam);
         $modelQuestion->save();
     });
     set_message_success('Kelas Anda berhasil ditambahkan. Namun kelas Anda masih berada pada tahap moderator.');
     $redirect = 'dashboard/course/edit/' . $course->id;
     if ($this->input->is_ajax_request()) {
         $this->output->set_content_type('application/json')->set_output(json_encode(['redirect' => site_url($redirect)]));
     } else {
         redirect($redirect);
     }
 }
Example #25
0
 public function scopeOnlyAllowEditor($query, $user_id = 0)
 {
     $user = $user_id ? Model\User::find($user_id) : sentinel()->getUser();
     return $query->whereHas('categories', function ($query) use($user) {
         return $query->whereIn($query->getModel()->getTable() . '.id', $user->editorcategory->pluck('id')->toArray());
     });
 }
Example #26
0
 public function checkTA()
 {
     if (sentinel()->inRole('ta')) {
         return TRUE;
     } else {
         return FALSE;
     }
 }
Example #27
0
                        </li>
                        <li class="nav-item">
                            <a href="<?php 
echo vicon_url();
?>
" class="nav-link">VIRTUAL CONFERENCE</a>
                        </li>
                    </ul>
                    <?php 
if (sentinel()->check()) {
    ?>
                        <ul class="nav navbar-nav pull-right">
                            <div class="dropdown dropdown-people">
                                <a class="dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                    <img src="<?php 
    echo sentinel()->getUser()->avatar;
    ?>
" alt="">
                                </a>
                                <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenu2">
                                    <a href="<?php 
    echo dashboard_url('profile');
    ?>
" class="dropdown-item">Profile</a>
                                    <a href="<?php 
    echo dashboard_url('sendArticle');
    ?>
" class="dropdown-item">Artikel</a>
                                    <a href="<?php 
    echo logout_url();
    ?>
Example #28
0
 public function changepassword($user_id)
 {
     $this->form_validation->set_rules('password', 'New Password', 'required|min_length[6]');
     $this->form_validation->set_rules('password_confirmation', 'New Password Confirmation', 'required|min_length[6]|matches[password]');
     $this->form_validation->set_rules('password_old', 'Old Password', 'required');
     if ($this->form_validation->run() == FALSE) {
         $data['user'] = auth()->findById($user_id);
         $this->template->build('formChangePass', $data);
     } else {
         $hasher = sentinel()->getHasher();
         $password = set_value('password');
         $password_old = set_value('password_old');
         $password_confirmation = set_value('password_confirmation');
         $user = sentinel()->getUser($user_id);
         if (!$hasher->check($password_old, $user->password) || $password != $password_confirmation) {
             set_message_error('Password lama tidak sesuai.');
             redirect('user/changepassword/' . $user_id, 'refresh');
         } else {
             sentinel()->update($user, array('password' => $password));
             set_message_success('Password berhasil diperbarui.');
             redirect('user/updateProfile/' . $user_id, 'refresh');
         }
     }
 }
Example #29
0
 public function delete($media_id)
 {
     try {
         $user = sentinel()->getUser();
         $media = Model\Elib\Media::withDrafts()->userId($user->id)->findOrFail($media_id);
         $this->medialib->setMedia($media);
         $category = $media->category;
         $this->medialib->deleteMedia($media_id);
         redirect('media/show/' . $category->id, 'refresh');
     } catch (\Exception $e) {
         set_message_error('Media tidak tersedia.');
         redirect('media', 'refresh');
     }
 }
Example #30
0
 public function scopeOnlyAllowEditor($query, $user_id = 0)
 {
     $user = $user_id ? Model\User::find($user_id) : sentinel()->getUser();
     return $query->whereIn('id', $user->editorcategory->pluck('id')->toArray());
 }