/**
  * Project Tracking Gitolite
  * Add "Add New Git Repository" option under source tab.
  * Check for allowed repository as per the permissions
  */
 function index()
 {
     parent::index();
     // check whether user have access to add repositories
     if (ProjectSourceRepositories::canAdd($this->logged_user, $this->active_project)) {
         $this->wireframe->actions->add('add_git', lang('Create Git Repository'), Router::assemble('add_git_repository', array('project_slug' => $this->active_project->getSlug())), array('onclick' => new FlyoutFormCallback('repository_created', array('width' => 'narrow')), 'icon' => AngieApplication::getPreferedInterface() == AngieApplication::INTERFACE_DEFAULT ? AngieApplication::getImageUrl('icons/16X16-git.png', AC_GITOLITE_MODULE) : AngieApplication::getImageUrl('icons/16X16-git.png', AC_GITOLITE_MODULE, AngieApplication::INTERFACE_PHONE)));
         $this->wireframe->actions->add('add_remote_git', lang('Clone Remote Repository'), Router::assemble('add_remote_git', array('project_slug' => $this->active_project->getSlug())), array('onclick' => new FlyoutFormCallback('repository_created', array('width' => '900')), 'icon' => AngieApplication::getPreferedInterface() == AngieApplication::INTERFACE_DEFAULT ? AngieApplication::getImageUrl('icons/16X16-git.png', AC_GITOLITE_MODULE) : AngieApplication::getImageUrl('icons/16X16-git.png', AC_GITOLITE_MODULE, AngieApplication::INTERFACE_PHONE)));
     }
     $repositories = ProjectSourceRepositories::findByProjectId($this->active_project->getId(), $this->logged_user->getMinVisibility());
     $get_admin_settings = GitoliteAdmin::get_admin_settings();
     //print_r($get_admin_settings);
     //if(is_array($get_admin_settings) && count($get_admin_settings) > 0)
     //{
     $cloneurls = array();
     $gitolite_repos = array();
     $remote_repos = array();
     foreach ($repositories as $repository) {
         $repo_fk = $repository->getFieldValue("integer_field_1");
         $chk_gitolite = ProjectGitolite::is_gitolite_repo($repo_fk);
         if (is_array($chk_gitolite) && sizeof($chk_gitolite) > 0 && $chk_gitolite['chk_gitolite'] > 0) {
             $permissions = @unserialize($chk_gitolite['permissions']);
             if ($permissions !== false || $permissions === 'b:0;') {
                 $permissions_array = $permissions;
             } else {
                 $permissions_array = array();
             }
             if (array_key_exists($this->logged_user->getId(), $permissions_array) && $permissions_array[$this->logged_user->getId()] > 1 || $this->logged_user->isAdministrator() || $this->logged_user->isProjectManager() || $this->active_project->isLeader($this->logged_user)) {
                 $allowed_repos[] = $repository->getId();
             }
             /* $clone_url = $get_admin_settings['gitoliteuser']."@".$get_admin_settings['gitoliteserveradd'].":".$repository->getName();
                $cloneurls[$repository->getId()] = "git clone ".$clone_url.".git"; */
             $gitolite_repos[] = $repository->getId();
         } elseif (is_array($chk_gitolite) && sizeof($chk_gitolite) > 0 && $chk_gitolite['chk_gitolite'] == 0) {
             $chk_remote = ProjectGitolite::chk_remote_repo($repo_fk);
             if (is_array($chk_remote) && sizeof($chk_remote) > 0 && $chk_remote['chk_remote'] > 0) {
                 $remote_repos[] = $repository->getId();
                 $allowed_repos[] = $repository->getId();
             } else {
                 $allowed_repos[] = $repository->getId();
             }
         } else {
             $allowed_repos[] = $repository->getId();
         }
     }
     //}
     //echo "asdas dasd";
     //print_r($allowed_repos);
     //die();
     $this->response->assign(array('repositories' => $repositories, 'cloneurls' => $cloneurls, 'gitolite_repos' => $gitolite_repos, 'remote_repos' => $remote_repos, 'can_add_repository' => $can_add_repository, 'allowed_repos' => $allowed_repos));
 }