private static function jiraProjectID($key) { $api = JiraCalHelper::jiraApi(); return $api->getProject($key)['id']; }
/** * Check jira credentials and validate. * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function auth(Request $request) { // should never happen, is checked in view if (is_null(config('jiracal.jira_url'))) { return redirect()->back()->withInput()->withErrors(['message' => 'Jira URL is not configured.']); } $username = ''; $password = ''; if ($request->has('guest') && $request->input('guest') == 'true') { if (!is_null(config('jiracal.guest_jira_username')) && !is_null(config('jiracal.guest_jira_password'))) { $username = config('jiracal.guest_jira_username'); $password = config('jiracal.guest_jira_password'); } else { return redirect()->back()->withInput()->withErrors(['message' => 'Jira guest is not configured.']); } } else { $this->validate($request, ['jira-username' => 'required', 'jira-password' => 'required']); $username = $request->input('jira-username'); $password = $request->input('jira-password'); } try { $api = JiraCalHelper::jiraApi($username, $password); $projects = []; //TODO: better initialization? $projects = $api->getProjects(); } catch (\chobie\Jira\Api\UnauthorizedException $ue) { return redirect()->back()->withInput()->withErrors(['message' => 'Jira authentication failed, please try again.']); } catch (\chobie\Jira\Api\Exception $ex1) { return redirect()->back()->withInput()->withErrors(['message' => 'Error: ' . $ex1]); } catch (\Exception $ex2) { return redirect()->back()->withInput()->withErrors(['message' => 'Error: ' . $ex2]); } if ($projects != false) { session(['jira-username' => $username, 'jira-password' => \Crypt::encrypt($password), 'jira-auth' => true]); // return redirect()->action('\Josevh\JiraCal\JiraCalController@index'); return redirect()->to(session()->get('_loginref')); } else { return redirect()->back()->withInput()->withErrors(['message' => 'Unable to connect to Jira, please try again.']); } }