Ajout de la Webterface, renommage du SQL

This commit is contained in:
Mysaa Java
2021-07-28 22:52:43 +02:00
parent 09af348180
commit 18b2647b12
10 changed files with 224 additions and 41 deletions
+12 -9
View File
@@ -8,7 +8,10 @@ AS $code$
DECLARE
selectedrepo git.gitrepoaccesstype;
BEGIN
IF gitrepo LIKE '/%'
THEN gitrepo := SUBSTRING(gitrepo,1,LENGTH(gitrepo)-1);
END IF;
/* user.repo */
SELECT MAX("accessType")
INTO selectedrepo
@@ -16,26 +19,26 @@ BEGIN
JOIN git.repos ON "repoID"=repos."ID"
WHERE repos.path=gitrepo AND "userID"=gituserid;
RETURN selectedrepo;
IF selectedrepo != NULL
THEN RETURN selectedrepo;
END IF;
RAISE WARNING 'Le repo na pas marche 2';
/* groupe.repo */
SELECT MAX('accessType')
SELECT MAX(perms."accessType")
INTO selectedrepo
FROM git.perms
JOIN git.repos ON repoID=repos."ID"
JOIN git.repos ON "repoID"=repos."ID"
JOIN git.appartenances ON appartenances."groupeID"=-perms."userID"
WHERE repos.path=gitrepo AND appartenances."utilisateurID"=gituserid;
IF selectedrepo != NULL
THEN RETURN selectedrepo;
END IF;
RAISE WARNING 'Le repo na pas marche 3';
/* user.repoGroup */
SELECT MAX('accessType')
SELECT MAX("accessType")
INTO selectedrepo
FROM git.perms
JOIN git.repos ON "repoID"=-repos."groupeID"
@@ -44,9 +47,9 @@ BEGIN
IF selectedrepo != NULL
THEN RETURN selectedrepo;
END IF;
RAISE WARNING 'Le repo na pas marche 4';
/* groupe.repoGroupe */
SELECT MAX('accessType')
SELECT MAX("accessType")
INTO selectedrepo
FROM git.perms
JOIN git.appartenances ON appartenances."groupeID"=-perms."userID"
@@ -1,5 +1,6 @@
CREATE OR REPLACE FUNCTION git."ReadableRepos" (
gituserid integer
CREATE OR REPLACE FUNCTION git."AccessibleRepos" (
gituserid integer,
accesst git.gitrepoaccesstype
)
RETURNS table(
ID integer,
@@ -18,26 +19,26 @@ BEGIN
SELECT repos.*
FROM git.perms
JOIN git.repos ON "repoID"=repos."ID"
WHERE "accessType">='READ' AND "userID"=gituserid
WHERE "accessType">=accesst 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">=accesst 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">=accesst 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">=accesst AND "userID"=gituserid;
END
$code$