Ajout des sections dans le cgit-config-gen.
This commit is contained in:
parent
5edb145822
commit
09af348180
2
Makefile
2
Makefile
@ -15,6 +15,8 @@ auth-keys-gen: authKeysPg.c
|
||||
cgit-config-gen: cgit-config-gen.c
|
||||
gcc cgit-config-gen.c -o cgit-config-gen -L/usr/server/postgresql/lib -I/usr/server/postgresql/include -lpq $(CFLAGS)
|
||||
|
||||
install-sql: sql/AccessType.sql sql/ReadableRepos.sql
|
||||
/usr/server/postgresql/bin/psql -Upostgres -dpipi -f sql/AccessType.sql -f sql/ReadableRepos.sql
|
||||
|
||||
install: all
|
||||
cp pam_oath_key.so /lib/security
|
||||
|
||||
@ -26,7 +26,7 @@ main(int argc, char **argv)
|
||||
PGconn *conn;
|
||||
PGresult *res;
|
||||
int i;
|
||||
|
||||
char* lastRgid;
|
||||
// Euhhhhhhhhhh
|
||||
/*
|
||||
DIR *dp;
|
||||
@ -55,7 +55,7 @@ main(int argc, char **argv)
|
||||
c = fgetc(fd);
|
||||
}
|
||||
fclose(fd);
|
||||
|
||||
|
||||
printf("## Maintenant les repos ##\n\n");
|
||||
|
||||
// Récupère le mdp à la BDD
|
||||
@ -72,7 +72,6 @@ main(int argc, char **argv)
|
||||
fclose(dbPassFile);
|
||||
connInfo[pos] = '\'';
|
||||
|
||||
fprintf(stderr,"On va tenter de se connecter à la bdd en tant que %d\n",geteuid());
|
||||
|
||||
// Connecte à la BDD
|
||||
conn = PQconnectdb(connInfo);
|
||||
@ -95,18 +94,23 @@ main(int argc, char **argv)
|
||||
|
||||
|
||||
// Demande les données à la BDD
|
||||
const char const * sqlParamValues[] = {"1"};
|
||||
res = PQexecParams(conn,"SELECT path,owner,description,logoUrl FROM git.\"ReadableRepos\"($1)",1,NULL,sqlParamValues,NULL,NULL,1);
|
||||
const char const * sqlParamValues[] = {"0"};
|
||||
res = PQexecParams(conn,"SELECT path,owner,description,logoUrl,groupeID,gdr.nom FROM git.\"ReadableRepos\"($1) JOIN git.\"groupesDeRepo\" AS gdr ON gdr.\"ID\"=groupeID ORDER BY groupeID",1,NULL,sqlParamValues,NULL,NULL,0);
|
||||
if (PQresultStatus(res) != PGRES_TUPLES_OK) {
|
||||
fprintf(stderr,"Impossible de lancer la requête SQL pour la liste des repos: %s",PQerrorMessage(conn));
|
||||
PQclear(res);
|
||||
PQfinish(conn);
|
||||
return 1;
|
||||
}
|
||||
|
||||
lastRgid = "";
|
||||
// Renvoie le résultat à travers stdout
|
||||
for (i = 0; i < PQntuples(res); i++)
|
||||
{
|
||||
|
||||
if(PQgetisnull(res,i,4)!=1 && (strcmp(PQgetvalue(res, i, 4),lastRgid)!=0)){
|
||||
lastRgid = PQgetvalue(res, i, 4);
|
||||
printf("\nsection=%s\n\n",PQgetvalue(res,i,5));
|
||||
}
|
||||
printf("repo.url=%s\n",PQgetvalue(res,i,0));
|
||||
printf("repo.path=/srv/git/%s\n",PQgetvalue(res,i,0));
|
||||
if(PQgetisnull(res,i,1)!=1)
|
||||
@ -118,7 +122,7 @@ main(int argc, char **argv)
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
PQclear(res);
|
||||
PQfinish(conn);
|
||||
return 0;
|
||||
|
||||
@ -28,7 +28,7 @@ BEGIN
|
||||
FROM git.perms
|
||||
JOIN git.repos ON repoID=repos."ID"
|
||||
JOIN git.appartenances ON appartenances."groupeID"=-perms."userID"
|
||||
WHERE repos.path=gitrepo AND appartenances.utilisateurID=gituserid;
|
||||
WHERE repos.path=gitrepo AND appartenances."utilisateurID"=gituserid;
|
||||
|
||||
IF selectedrepo != NULL
|
||||
THEN RETURN selectedrepo;
|
||||
@ -38,8 +38,8 @@ BEGIN
|
||||
SELECT MAX('accessType')
|
||||
INTO selectedrepo
|
||||
FROM git.perms
|
||||
JOIN git.repos ON repoID=-repos."groupeID"
|
||||
WHERE repos.path=gitrepo AND userID=gituserid;
|
||||
JOIN git.repos ON "repoID"=-repos."groupeID"
|
||||
WHERE repos.path=gitrepo AND "userID"=gituserid;
|
||||
|
||||
IF selectedrepo != NULL
|
||||
THEN RETURN selectedrepo;
|
||||
@ -51,7 +51,7 @@ BEGIN
|
||||
FROM git.perms
|
||||
JOIN git.appartenances ON appartenances."groupeID"=-perms."userID"
|
||||
JOIN git.repos ON "repoID"=-repos."groupeID"
|
||||
WHERE repos.path=gitrepo AND userID=gituserid;
|
||||
WHERE repos.path=gitrepo AND "userID"=gituserid;
|
||||
|
||||
RETURN selectedRepo;
|
||||
|
||||
|
||||
@ -18,26 +18,26 @@ BEGIN
|
||||
SELECT repos.*
|
||||
FROM git.perms
|
||||
JOIN git.repos ON "repoID"=repos."ID"
|
||||
WHERE "accessType">'READ' AND "userID"=gituserid
|
||||
WHERE "accessType">='READ' AND "userID"=gituserid
|
||||
UNION
|
||||
/* groupe.repo */
|
||||
SELECT repos.*
|
||||
FROM git.perms
|
||||
JOIN git.repos ON "repoID"=repos."ID"
|
||||
JOIN git.appartenances ON appartenances."groupeID"=-perms."userID"
|
||||
WHERE "accessType">'READ' AND appartenances."utilisateurID"=gituserid
|
||||
WHERE "accessType">='READ' AND appartenances."utilisateurID"=gituserid
|
||||
UNION
|
||||
/* user.repoGroup */
|
||||
SELECT repos.*
|
||||
FROM git.perms
|
||||
JOIN git.repos ON "repoID"=-repos."groupeID"
|
||||
WHERE "accessType">'READ' AND "userID"=gituserid
|
||||
WHERE "accessType">='READ' AND "userID"=gituserid
|
||||
UNION
|
||||
/* groupe.repoGroupe */
|
||||
SELECT repos.*
|
||||
FROM git.perms
|
||||
JOIN git.appartenances ON appartenances."groupeID"=-perms."userID"
|
||||
JOIN git.repos ON "repoID"=-repos."groupeID"
|
||||
WHERE "accessType">'READ' AND "userID"=gituserid;
|
||||
WHERE "accessType">='READ' AND "userID"=gituserid;
|
||||
END
|
||||
$code$
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user