diff options
author | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2011-03-06 11:05:57 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2011-03-06 11:05:57 -0300 |
commit | 3aa14c9fbec24f5049e12a8dbb5ce059d2c8f5f3 (patch) | |
tree | 28755cf0ae66b145d752358c1f722c2d095e877a /packages/utils.py | |
parent | c738e2c8f687f3417b90c951254121cce491843a (diff) | |
parent | 65e965c8f76677904f5d98965e13bf89726247d4 (diff) |
Merge branch 'master' of git://projects.archlinux.org/archweb
Conflicts:
media/archweb.css
public/views.py
urls.py
Diffstat (limited to 'packages/utils.py')
-rw-r--r-- | packages/utils.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/packages/utils.py b/packages/utils.py index aaec0ec4..8d9f13ab 100644 --- a/packages/utils.py +++ b/packages/utils.py @@ -5,7 +5,7 @@ from operator import itemgetter from main.models import Package from main.utils import cache_function -from .models import PackageGroup +from .models import PackageGroup, PackageRelation @cache_function(300) def get_group_info(include_arches=None): @@ -128,4 +128,26 @@ SELECT p.id, q.id differences.sort(key=lambda a: (a.repo.name, a.pkgname)) return differences +def get_wrong_permissions(): + sql = """ +SELECT DISTINCT id + FROM ( + SELECT pr.id, p.repo_id, pr.user_id + FROM packages p + JOIN packages_packagerelation pr ON p.pkgbase = pr.pkgbase + WHERE pr.type = %s + ) pkgs + WHERE pkgs.repo_id NOT IN ( + SELECT repo_id FROM user_profiles_allowed_repos ar + INNER JOIN user_profiles up ON ar.userprofile_id = up.id + WHERE up.user_id = pkgs.user_id + ) +""" + cursor = connection.cursor() + cursor.execute(sql, [PackageRelation.MAINTAINER]) + to_fetch = [row[0] for row in cursor.fetchall()] + relations = PackageRelation.objects.select_related('user').filter( + id__in=to_fetch) + return relations + # vim: set ts=4 sw=4 et: |