summaryrefslogtreecommitdiffstats
path: root/scripts/git-integration
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/git-integration')
-rwxr-xr-xscripts/git-integration/git-serve.py11
-rwxr-xr-xscripts/git-integration/git-update.py8
2 files changed, 12 insertions, 7 deletions
diff --git a/scripts/git-integration/git-serve.py b/scripts/git-integration/git-serve.py
index a1c6e3a..d551dba 100755
--- a/scripts/git-integration/git-serve.py
+++ b/scripts/git-integration/git-serve.py
@@ -92,10 +92,13 @@ def check_permissions(pkgbase, user):
unix_socket=aur_db_socket, buffered=True)
cur = db.cursor()
- cur.execute("SELECT COUNT(*) FROM PackageBases INNER JOIN Users " +
- "ON Users.ID = PackageBases.MaintainerUID OR " +
- "PackageBases.MaintainerUID IS NULL WHERE " +
- "Name = %s AND Username = %s", [pkgbase, user])
+ cur.execute("SELECT COUNT(*) FROM PackageBases " +
+ "LEFT JOIN PackageComaintainers " +
+ "ON PackageComaintainers.PackageBaseID = PackageBases.ID " +
+ "INNER JOIN Users ON Users.ID = PackageBases.MaintainerUID " +
+ "OR PackageBases.MaintainerUID IS NULL " +
+ "OR Users.ID = PackageComaintainers.UsersID " +
+ "WHERE Name = %s AND Username = %s", [pkgbase, user])
return cur.fetchone()[0] > 0
def die(msg):
diff --git a/scripts/git-integration/git-update.py b/scripts/git-integration/git-update.py
index 1ff09b8..b20c0a2 100755
--- a/scripts/git-integration/git-update.py
+++ b/scripts/git-integration/git-update.py
@@ -47,9 +47,11 @@ def save_srcinfo(srcinfo, db, cur, user):
# Update package base details and delete current packages.
cur.execute("UPDATE PackageBases SET ModifiedTS = UNIX_TIMESTAMP(), " +
- "MaintainerUID = %s, PackagerUID = %s, " +
- "OutOfDateTS = NULL WHERE ID = %s",
- [user_id, user_id, pkgbase_id])
+ "PackagerUID = %s, OutOfDateTS = NULL WHERE ID = %s",
+ [user_id, pkgbase_id])
+ cur.execute("UPDATE PackageBases SET MaintainerUID = %s " +
+ "WHERE ID = %s AND MaintainerUID IS NULL",
+ [user_id, pkgbase_id])
cur.execute("DELETE FROM Packages WHERE PackageBaseID = %s",
[pkgbase_id])