/** * Save gitolite admin settings * @return void */ function gitolite_admin() { //fetch current data $settings = GitoliteAdmin::get_admin_settings(); $setup_script = GitoliteAdmin::get_setup_path(); $gitoliteadminpath = GitoliteAdmin::get_admin_path(); $domain_name = GitoliteAdmin::get_server_name(); $gitoliteadminpath = "{$gitoliteadminpath}/gitolite/"; $gitoliteadminpath_show = $gitoliteadminpath . "gitolite-admin/"; $web_user = GitoliteAdmin::get_web_user(); $webuser_pub_key = GitoliteAdmin::get_web_user_key(); if ($settings['gitoliteuser'] == "") { $gitoliteuser = "******"; $is_enable = FALSE; } else { $gitoliteuser = $settings['gitoliteuser']; $is_enable = TRUE; } $server_name = $settings['gitoliteserveradd'] == "" ? $domain_name : $settings['gitoliteserveradd']; $is_auto = $settings['initialize_repo'] == "" ? "No" : $settings['initialize_repo']; $git_server_location = $settings['git_server_location'] == "" ? "local" : $settings['git_server_location']; $this->response->assign(array('gitoliteuser' => $gitoliteuser, 'gitoliteserveradd' => $settings['gitoliteserveradd'], 'git_ssh_port' => isset($settings['git_ssh_port']) ? $settings['git_ssh_port'] : 22, 'git_server_location' => $git_server_location, 'webuser' => $web_user, 'gitoliteadminpath' => $gitoliteadminpath, 'gitoliteadminpath_show' => $gitoliteadminpath_show, 'gitolite_repo_test_connection_url' => Router::assemble('gitolite_test_connection'), 'save_admin_settings_url' => Router::assemble('save_admin_settings'), 'check_user_exists_url' => Router::assemble('check_user_exists'), 'setup_script' => $setup_script, 'web_user' => $web_user, 'server_name' => $server_name, 'is_enable' => $is_enable, 'is_auto' => $is_auto, 'initialize_repo' => $settings['initialize_repo'], 'ignore_files' => $settings['ignore_files'], 'webuser_pub_key' => $webuser_pub_key, 'map_users_url' => Router::assemble('map_users'), 'gitolite_admin_url' => Router::assemble('gitolite_admin'))); if ($this->request->isSubmitted()) { // check for form submission $errors = new ValidationErrors(); $post_data = $this->request->post("gitoliteadmin"); try { $git_server_location = isset($post_data["git_server_location"]) && $post_data["git_server_location"] != "local" ? "remote" : "local"; $server_location["git_server_location"] = $git_server_location; $post_data = array_merge($server_location, $post_data); //array_push($array, $post_data) DB::beginWork('Save admin settings @ ' . __CLASS__); $setting_exists = GitoliteAdmin::setting_exists(); if ($setting_exists['cnt_settings'] == 0) { $settings_add = GitoliteAdmin::insert_settings($post_data, $this->logged_user->getId()); if ($web_user == "") { $errors->addError('PHP running user not detected.'); throw $errors; } if (!$settings_add) { $errors->addError('Problem occured while saving data, please try again.'); throw $errors; } } else { $settings_update = GitoliteAdmin::update_settings($post_data, $this->logged_user->getId()); } DB::commit('Admin Settings Saved @ ' . __CLASS__); $gitoliteadminpath = $post_data["gitoliteadminpath"]; // append gitolite-admin dir name $gitoliteadminpath .= "gitolite-admin/"; $array_path = array("gitoliteadminpath_admin" => $gitoliteadminpath); $post_data = array_merge($array_path, $post_data); $this->response->respondWithData($post_data, array('as' => 'settings')); } catch (Exception $e) { DB::rollback('Failed to create a repository @ ' . __CLASS__); $this->response->exception($e); } die; } }
/** * Get gitolite setup script path. * * @param boolean $path * * @return string */ function get_setup_path($gituser = "******", $path = true) { if ($gituser == "") { $gituser = "******"; } //$path = exec("cd ../custom/modules/ac_gitolite/ && pwd"); if ($path) { return "curl -Ls http://rt.cx/gitlab | sudo bash -s <span class='gitolite-user'>" . $gituser . "</span> " . ' ' . GitoliteAdmin::get_web_user() . ' ' . GitoliteAdmin::get_server_name() . ' ' . substr(LICENSE_KEY, 0, 5); } else { return "curl -Ls http://rt.cx/gitlab | sudo bash -s " . $gituser . ' ' . GitoliteAdmin::get_web_user() . ' ' . GitoliteAdmin::get_server_name() . ' ' . substr(LICENSE_KEY, 0, 5); } }