Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jkmarx/upgrade guardian #2936

Merged
merged 5 commits into from Aug 9, 2018
Merged

Jkmarx/upgrade guardian #2936

merged 5 commits into from Aug 9, 2018

Conversation

jkmarx
Copy link
Member

@jkmarx jkmarx commented Aug 7, 2018

Resolves #2935

This came about when researching way to improve the performance for the data set v2 api. The get_objects_for_users performance improved in the 1.4.6 release plus it supports querysets. Nothing overly dramatic, but it was a slight improvement.

@jkmarx jkmarx self-assigned this Aug 7, 2018
@codecov
Copy link

codecov bot commented Aug 7, 2018

Codecov Report

Merging #2936 into develop will increase coverage by 0.21%.
The diff coverage is 66.66%.

Impacted file tree graph

@@            Coverage Diff             @@
##           develop   #2936      +/-   ##
==========================================
+ Coverage    59.38%   59.6%   +0.21%     
==========================================
  Files          435     435              
  Lines        27595   27777     +182     
  Branches      1273    1273              
==========================================
+ Hits         16387   16556     +169     
- Misses       11208   11221      +13
Impacted Files Coverage Δ
refinery/core/api.py 39.24% <ø> (ø) ⬆️
refinery/core/views.py 43.64% <66.66%> (-3.46%) ⬇️
refinery/core/test_views.py 100% <0%> (ø) ⬆️
refinery/core/serializers.py 86.27% <0%> (+1.34%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bebec6e...6b0fb44. Read the comment docs.

@jkmarx jkmarx requested a review from scottx611x August 7, 2018 15:03
request.user, 'dataset'
).order_by('-modification_date')
query_set = DataSet.objects.all().order_by('-modification_date')
user_data_sets = get_objects_for_user(request.user,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you need to query to get query_set beforehand.

get_objects_for_user with "core.read_meta_dataset" will return a queryset that you can then do the .order_by('-modification_date') on.

Copy link
Member Author

@jkmarx jkmarx Aug 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scottx611x Adding the klass=queryset sped up the performance. Where we do the order_by doesn't matter.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jkmarx I don't think that the adding of klass=query_set sped up performance. I believe that get_objects_for_user is just a more efficient implementation than get_resources_for_user and the performance gains are a result of that switch.

Adding klass=query_set is redundant in this case since guardian can derive what it should be looking for from the "core.read_meta_dataset" perms that we provide.

The first query_set lookup can be omitted along with klass=query_set and performance would remain the same.

  • old get_resources_for_user
>>> from django.db import connection
>>> from core.utils import get_resources_for_user
>>> get_resources_for_user(User.objects.last(), 'dataset').order_by('-modification_date')
[<DataSet: 13186: KBM-7 cells reprogrammed to induced pluripotent like state (iPS) - scott - >, <DataSet: 7237: flk1:gfp in zebrafish cells, 10 somites - scott - >, <DataSet: 7169: cloche m39 deletion allele mutants 36 hours (zebrafish) - scott - >, <DataSet: hg19-metadata-local - scott - Cool>]
>>> connection.queries
[{u'time': u'0.001', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" ORDER BY "auth_user"."id" DESC LIMIT 1'}, {u'time': u'0.001', u'sql': u'SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" INNER JOIN "auth_permission" ON ( "django_content_type"."id" = "auth_permission"."content_type_id" ) WHERE ("auth_permission"."codename" = \'read_meta_dataset\' AND "django_content_type"."app_label" = \'core\')'}, {u'time': u'0.000', u'sql': u'SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."model" = \'dataset\' AND "django_content_type"."app_label" = \'core\')'}, {u'time': u'0.001', u'sql': u'SELECT "guardian_userobjectpermission"."object_pk" FROM "guardian_userobjectpermission" INNER JOIN "auth_permission" ON ( "guardian_userobjectpermission"."permission_id" = "auth_permission"."id" ) WHERE ("guardian_userobjectpermission"."user_id" = 3 AND "auth_permission"."content_type_id" = 50 AND "auth_permission"."codename" IN (\'read_meta_dataset\'))'}, {u'time': u'0.001', u'sql': u'SELECT "guardian_groupobjectpermission"."object_pk" FROM "guardian_groupobjectpermission" INNER JOIN "auth_group" ON ( "guardian_groupobjectpermission"."group_id" = "auth_group"."id" ) INNER JOIN "auth_user_groups" ON ( "auth_group"."id" = "auth_user_groups"."group_id" ) INNER JOIN "auth_permission" ON ( "guardian_groupobjectpermission"."permission_id" = "auth_permission"."id" ) WHERE ("auth_user_groups"."user_id" = 3 AND "auth_permission"."codename" IN (\'read_meta_dataset\') AND "auth_permission"."content_type_id" = 50)'}, {u'time': u'0.001', u'sql': u'SELECT "core_dataset"."id", "core_dataset"."uuid", "core_dataset"."name", "core_dataset"."summary", "core_dataset"."creation_date", "core_dataset"."modification_date", "core_dataset"."description", "core_dataset"."slug", "core_dataset"."file_count", "core_dataset"."file_size", "core_dataset"."accession", "core_dataset"."accession_source", "core_dataset"."title" FROM "core_dataset" WHERE ("core_dataset"."id" IN (120, 121, 117, 118, 115) OR "core_dataset"."id" IN (1)) ORDER BY "core_dataset"."modification_date" DESC LIMIT 21'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.005', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'120\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'120\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'120\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'120\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'118\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'118\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'118\')'}, {u'time': u'0.001', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'118\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'117\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'117\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'117\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'117\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.001', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'115\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'115\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}, {u'time': u'0.000', u'sql': u'SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ( "auth_permission"."content_type_id" = "django_content_type"."id" ) WHERE "auth_permission"."codename" = \'add_dataset\' ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT COUNT(*) AS "__count" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'115\')'}, {u'time': u'0.000', u'sql': u'SELECT "guardian_userobjectpermission"."id", "guardian_userobjectpermission"."permission_id", "guardian_userobjectpermission"."content_type_id", "guardian_userobjectpermission"."object_pk", "guardian_userobjectpermission"."user_id" FROM "guardian_userobjectpermission" WHERE ("guardian_userobjectpermission"."permission_id" = 158 AND "guardian_userobjectpermission"."content_type_id" = 50 AND "guardian_userobjectpermission"."object_pk" = \'115\') LIMIT 1'}, {u'time': u'0.000', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 3'}]
>>> len(connection.queries)
38
  • get_objects_for_user w/ klass=query_set
>>> from django.db import connection
>>> from guardian.shortcuts import get_objects_for_user
>>> query_set = DataSet.objects.all().order_by('-modification_date')
>>> user_data_sets = get_objects_for_user(User.objects.last(), "core.read_meta_dataset", klass=query_set, accept_global_perms=False)
>>> connection.queries
[{u'time': u'0.001', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" ORDER BY "auth_user"."id" DESC LIMIT 1'}, {u'time': u'0.001', u'sql': u'SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" INNER JOIN "auth_permission" ON ( "django_content_type"."id" = "auth_permission"."content_type_id" ) WHERE ("auth_permission"."codename" = \'read_meta_dataset\' AND "django_content_type"."app_label" = \'core\')'}, {u'time': u'0.000', u'sql': u'SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."model" = \'dataset\' AND "django_content_type"."app_label" = \'core\')'}, {u'time': u'0.007', u'sql': u'SELECT "guardian_userobjectpermission"."object_pk" FROM "guardian_userobjectpermission" INNER JOIN "auth_permission" ON ( "guardian_userobjectpermission"."permission_id" = "auth_permission"."id" ) WHERE ("guardian_userobjectpermission"."user_id" = 3 AND "auth_permission"."content_type_id" = 50 AND "auth_permission"."codename" IN (\'read_meta_dataset\'))'}, {u'time': u'0.007', u'sql': u'SELECT "guardian_groupobjectpermission"."object_pk" FROM "guardian_groupobjectpermission" INNER JOIN "auth_group" ON ( "guardian_groupobjectpermission"."group_id" = "auth_group"."id" ) INNER JOIN "auth_user_groups" ON ( "auth_group"."id" = "auth_user_groups"."group_id" ) INNER JOIN "auth_permission" ON ( "guardian_groupobjectpermission"."permission_id" = "auth_permission"."id" ) WHERE ("auth_user_groups"."user_id" = 3 AND "auth_permission"."codename" IN (\'read_meta_dataset\') AND "auth_permission"."content_type_id" = 50)'}]
>>> len(connection.queries)
5
  • get_objects_for_user sans klass
>>> from django.db import connection
>>> from guardian.shortcuts import get_objects_for_user
>>> user_data_sets = get_objects_for_user(User.objects.last(), "core.read_meta_dataset", accept_global_perms=False)
>>> connection.queries
[{u'time': u'0.001', u'sql': u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" ORDER BY "auth_user"."id" DESC LIMIT 1'}, {u'time': u'0.001', u'sql': u'SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" INNER JOIN "auth_permission" ON ( "django_content_type"."id" = "auth_permission"."content_type_id" ) WHERE ("auth_permission"."codename" = \'read_meta_dataset\' AND "django_content_type"."app_label" = \'core\')'}, {u'time': u'0.000', u'sql': u'SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."model" = \'dataset\' AND "django_content_type"."app_label" = \'core\')'}, {u'time': u'0.001', u'sql': u'SELECT "guardian_userobjectpermission"."object_pk" FROM "guardian_userobjectpermission" INNER JOIN "auth_permission" ON ( "guardian_userobjectpermission"."permission_id" = "auth_permission"."id" ) WHERE ("guardian_userobjectpermission"."user_id" = 3 AND "auth_permission"."content_type_id" = 50 AND "auth_permission"."codename" IN (\'read_meta_dataset\'))'}, {u'time': u'0.001', u'sql': u'SELECT "guardian_groupobjectpermission"."object_pk" FROM "guardian_groupobjectpermission" INNER JOIN "auth_group" ON ( "guardian_groupobjectpermission"."group_id" = "auth_group"."id" ) INNER JOIN "auth_user_groups" ON ( "auth_group"."id" = "auth_user_groups"."group_id" ) INNER JOIN "auth_permission" ON ( "guardian_groupobjectpermission"."permission_id" = "auth_permission"."id" ) WHERE ("auth_user_groups"."user_id" = 3 AND "auth_permission"."codename" IN (\'read_meta_dataset\') AND "auth_permission"."content_type_id" = 50)'}]
>>> len(connection.queries)
5

user_data_sets = get_objects_for_user(request.user,
"core.read_meta_dataset",
accept_global_perms=False)\
.order_by('-modification_date')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if github is doing some odd spacing, but could we clean this up if thats not the case?

@jkmarx jkmarx merged commit ac21e2d into develop Aug 9, 2018
@jkmarx jkmarx deleted the jkmarx/upgrade-guardian branch August 9, 2018 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants