/** * Update password * * 1. Check new password * 2. Check old password * 3. Save password * @param id * @return redirect url */ public function update() { //1. Check new password if (Input::has('password')) { $rules = ['password' => 'min:8|confirmed']; $validator = Validator::make(Input::only('password', 'password_confirmation'), $rules); if (!$validator->passes()) { $this->errors = $validator->errors(); return $this->generateRedirectRoute('password.change.edit', ['id' => Input::get('password')]); } } //2. Check old password $APIMe = new APIMe(); $me = $APIMe->getShow(true); if ($me['status'] != 'success') { \App::abort(404); } $apiUrl = '/oauth/access_token'; $apiData = ['email' => $me['data']['email'], 'password' => Input::get('old_password'), 'grant_type' => 'password', 'client_id' => env('API_client_id'), 'client_secret' => env('API_client_secret')]; $api = new API(); $result = json_decode($api->post($apiUrl, $apiData), true); //3. Save password if ($result['status'] == "success") { Session::set('APIToken', $result['data']['token']['token']); Session::set('userID', $result['data']['me']['id']); $APIAdmin = new APIAdmin(); $data = $APIAdmin->getShow($result['data']['me']['id']); $admin = $data['data']; if (strtotime($data['data']['date_of_birth'])) { $admin['date_of_birth'] = date('Y-m-d H:i:s', strtotime($data['data']['date_of_birth'])); } else { $admin['date_of_birth'] = ''; } $admin['password'] = Input::get('password'); $result = $APIAdmin->postData($admin); //3b. Check Response if ($result['status'] != 'success') { $this->errors = $result['message']; } //3c. Return view if (!empty($id)) { $this->page_attributes->success = "Data Admin Telah Diedit"; } else { $this->page_attributes->success = "Data Admin Telah Ditambahkan"; } return $this->generateRedirectRoute('admin.dashboard'); } else { return Redirect::route('auth.login'); } }
/** * Store an admin * * 1. Check input * 2. Check data * 3. Save admin * 4. Check Response * 5. Return view * @param id * @return object view */ public function store($id = null) { //1. Check input $inputName = Input::get('name'); $inputEmail = Input::get('email'); $inputRole = Input::get('role'); if (Input::has('is_active')) { $inputIsActive = true; } else { $inputIsActive = false; } if (Input::has('password')) { $rules = ['password' => 'min:8|confirmed']; $validator = Validator::make(Input::only('password', 'password_confirmation'), $rules); if (!$validator->passes()) { $this->errors = $validator->errors(); return $this->generateRedirectRoute('config.administrative.show', ['id' => Input::get('admin')]); } } $APIAdmin = new APIAdmin(); //2. Check data if (!empty($id)) { $data = $APIAdmin->getShow($id); $admin['id'] = $data['data']['id']; $admin['name'] = $inputName; $admin['gender'] = $data['data']['gender']; if (strtotime($data['data']['date_of_birth'])) { $admin['date_of_birth'] = $data['data']['date_of_birth']; } else { $admin['date_of_birth'] = ''; } $admin['email'] = $inputEmail; $admin['role'] = $inputRole; $admin['is_active'] = $inputIsActive; } else { $admin['name'] = $inputName; $admin['email'] = $inputEmail; $admin['role'] = $inputRole; $admin['is_active'] = $inputIsActive; $admin['id'] = ''; } if (Input::has('password')) { $admin['password'] = Input::get('password'); } //3. Save admin $result = $APIAdmin->postData($admin); //4. Check Response if ($result['status'] != 'success') { $this->errors = $result['message']; } //5. Return view if (!empty($id)) { $this->page_attributes->success = "Data Admin Telah Diedit"; } else { $this->page_attributes->success = "Data Admin Telah Ditambahkan"; } return $this->generateRedirectRoute('config.administrative.show', ['id' => Input::get('admin')]); }