From 62a26bc08772a8d7b95aee34263d331069c42463 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Mon, 7 May 2012 10:18:51 +0400 Subject: [PATCH] Check for email only but not for group or login when adding repositories. Check for Chili project.identifier for Git repos. --- gitorious_chiliproject.sh | 3 ++- rhodecode_chiliproject.sh | 37 ++++++++++++------------------------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/gitorious_chiliproject.sh b/gitorious_chiliproject.sh index c78fc37..d4803d9 100755 --- a/gitorious_chiliproject.sh +++ b/gitorious_chiliproject.sh @@ -37,7 +37,8 @@ CHILI_ID_GITORIOUS_REPO=`mysql -h$MYSQL_HOSTNAME -u $MYSQL_USER -e \ AND $CHILI_MYSQL_DBNAME.member_roles.role_id=$CHILI_MYSQL_DBNAME.roles.id AND $CHILI_MYSQL_DBNAME.members.user_id=$CHILI_MYSQL_DBNAME.users.id AND $CHILI_MYSQL_DBNAME.members.project_id=$CHILI_MYSQL_DBNAME.projects.id - AND $CHILI_MYSQL_DBNAME.projects.name=$GITORIOUS_MYSQL_DBNAME.repositories.name + AND ($CHILI_MYSQL_DBNAME.projects.name=$GITORIOUS_MYSQL_DBNAME.repositories.name + OR $CHILI_MYSQL_DBNAME.projects.identifier=$GITORIOUS_MYSQL_DBNAME.repositories.name) AND $CHILI_MYSQL_DBNAME.users.type='User' AND $CHILI_MYSQL_DBNAME.users.mail=$GITORIOUS_MYSQL_DBNAME.users.email AND $CHILI_MYSQL_DBNAME.roles.name IN ('Инициатор','Менеджер','Major','Manager') diff --git a/rhodecode_chiliproject.sh b/rhodecode_chiliproject.sh index 29da67d..d1feb71 100755 --- a/rhodecode_chiliproject.sh +++ b/rhodecode_chiliproject.sh @@ -31,32 +31,26 @@ repos_to_remove=${repos_to_remove#,} # === GET DATA FROM RHODECODE SQLITE BASE === rh_repos_path=`sqlite3 $RHODECODE_SQLITE_PATH "select ui_value FROM rhodecode_ui where ui_section='paths'"` -SQLITE_RESULTS=`sqlite3 $RHODECODE_SQLITE_PATH "SELECT repo_name,repo_type,users.username,users.email,users_groups.users_group_name - FROM repositories,users,users_groups,users_groups_members - WHERE repositories.user_id=users.user_id - AND users.user_id=users_groups_members.user_id - AND users_groups.users_group_id=users_groups_members.users_group_id;"` +SQLITE_RESULTS=`sqlite3 $RHODECODE_SQLITE_PATH "SELECT repo_name,repo_type,users.email + FROM repositories,users + WHERE repositories.user_id=users.user_id;"` # initializing repos arrays and count them repos_names= repos_paths= repos_types= -repos_users= repos_mails= -repos_groups= let nrepos=0 for r in $SQLITE_RESULTS; do - repos_paths[$nrepos]=$rh_repos_path/${r%|*|*|*|*} + repos_paths[$nrepos]=$rh_repos_path/${r%|*|*} tmp=${repos_paths[$nrepos]%/}; repos_names[$nrepos]=${tmp##*/} - tmp=${r%|*|*|*}; repos_types[$nrepos]=${tmp#*|} + tmp=${r%|*}; repos_types[$nrepos]=${tmp#*|} case ${repos_types[$nrepos]} in - hg) repos_types[$nrepos]='Mercurial';; - git) repos_types[$nrepos]='Git';; + hg) repos_types[$nrepos]='Mercurial';; + git) repos_types[$nrepos]='Git';; esac - tmp=${r%|*|*}; repos_users[$nrepos]=${tmp#*|*|} - tmp=${r%|*}; repos_mails[$nrepos]=${tmp#*|*|*|} - repos_groups[$nrepos]=${r#*|*|*|*|} + repos_mails[$nrepos]=${tmp#*|*|} let nrepos++ done @@ -71,17 +65,10 @@ for i in `seq 0 $((nrepos-1))`; do [ "$ALREADY_EXIST" != "" ] && continue USERID=`mysql -h$CHILI_MYSQL_HOSTNAME -u $CHILI_MYSQL_USER -e "SELECT id - FROM $CHILI_MYSQL_DBNAME.users,$CHILI_MYSQL_DBNAME.groups_users - WHERE users.id=groups_users.user_id - AND users.status='1' - AND users.login='${repos_users[$i]}' - AND users.mail='${repos_mails[$i]}' - AND users.type='User' - AND groups_users.group_id=(SELECT id - FROM $CHILI_MYSQL_DBNAME.users - WHERE users.type='Group' - AND users.lastname='${repos_groups[$i]}' - AND users.status='1')" \ + FROM $CHILI_MYSQL_DBNAME.users + WHERE users.status='1' + AND users.mail='${repos_mails[$i]}' + AND users.type='User'" \ | grep -v tables_col|xargs|sed "s/ /\n/g"|tail -n+2` [ "$USERID" == "" ] && continue