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'); } } }
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(); }
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); } }
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; }
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); }
public function __construct() { $this->user = sentinel()->getUser(); $this->course = new Course(); $this->category = new Category(); $this->chapter = new Chapter(); $this->attachment = new Attachment(); }
public function __construct() { $this->model = new Model\Portal\Article(); $this->imageManager = new ImageManager(); $this->user = sentinel()->check(); $this->categories = []; $this->tags = []; }
public function check() { if (!sentinel()->check()) { redirect(login_url(), 'refresh'); } if (!sentinel()->inRole($this->roles)) { redirect(site_url(), 'refresh'); } }
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; }
public function __construct() { parent::__construct(); $this->load->database(); $this->load->model(array('Model_faq' => 'model_faq')); if (!sentinel()->check()) { redirect(login_url()); } }
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')); }
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'); } }
/** * 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')); } }
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; }
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); }
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; } }
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'); } }
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'); } }
/** * 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]); } } }
/** * {@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; }
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'); } } }
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'); } } }
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); } }
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); } }
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()); }); }
public function checkTA() { if (sentinel()->inRole('ta')) { return TRUE; } else { return FALSE; } }
</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(); ?>
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'); } } }
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'); } }
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()); }