0001-add-Attribute.disabled-field-fixed-13234.patch
setup.py | ||
---|---|---|
111 | 111 |
install_requires=[ |
112 | 112 |
'django>=1.7.6,<1.9', |
113 | 113 |
'requests>=2.3', |
114 |
'django-model-utils>=2,<2.4',
|
|
114 |
'django-model-utils>=2.4', |
|
115 | 115 |
'django-admin-tools>=0.6,<0.7', |
116 | 116 |
'dnspython>=1.10', |
117 | 117 |
'Django-Select2>=4.3.0,<5', |
src/authentic2/managers.py | ||
---|---|---|
19 | 19 |
def get_by_natural_key(self, slug): |
20 | 20 |
return self.get(slug=slug) |
21 | 21 | |
22 |
GetBySlugManager = managers.PassThroughManager.for_queryset_class(GetBySlugQuerySet)
|
|
22 |
GetBySlugManager = GetBySlugQuerySet.as_manager
|
|
23 | 23 | |
24 | 24 | |
25 | 25 |
class GetByNameQuerySet(QuerySet): |
26 | 26 |
def get_by_natural_key(self, name): |
27 | 27 |
return self.get(name=name) |
28 | 28 | |
29 |
GetByNameManager = managers.PassThroughManager.for_queryset_class(GetByNameQuerySet)
|
|
29 |
GetByNameManager = GetByNameQuerySet.as_manager
|
|
30 | 30 | |
31 | 31 | |
32 | 32 |
class DeletedUserManager(models.Manager): |
... | ... | |
73 | 73 |
.for_service_model(service)) |
74 | 74 | |
75 | 75 | |
76 |
class FederatedIdManager(managers.PassThroughManager.for_queryset_class(FederatedIdQuerySet)):
|
|
76 |
class FederatedIdManager(models.Manager.from_queryset(FederatedIdQuerySet)):
|
|
77 | 77 |
@classmethod |
78 | 78 |
def local_user_id(cls, user): |
79 | 79 |
return '%s %s' % (LOCAL_USER_URN, urlquote(user.username)) |
... | ... | |
98 | 98 |
content_type = ContentType.objects.get_for_model(model) |
99 | 99 |
return self.filter(content_type=content_type, object_id=model.pk) |
100 | 100 | |
101 |
GenericManager = managers.PassThroughManager.for_queryset_class(GenericQuerySet)
|
|
101 |
GenericManager = models.Manager.from_queryset(GenericQuerySet)
|
|
102 | 102 | |
103 | 103 | |
104 | 104 |
class AttributeValueQuerySet(QuerySet): |
... | ... | |
145 | 145 |
return self.get(**kwargs) |
146 | 146 | |
147 | 147 | |
148 |
class AttributeManager(managers.QueryManager.from_queryset(GetByNameQuerySet)): |
|
149 |
use_for_related_fields = False |
|
150 | ||
151 | ||
148 | 152 |
ServiceManager = BaseServiceManager.from_queryset(ServiceQuerySet) |
149 |
AttributeValueManager = managers.PassThroughManager.for_queryset_class(AttributeValueQuerySet) |
|
153 |
AttributeValueManager = models.Manager.from_queryset(AttributeValueQuerySet) |
src/authentic2/migrations/0016_attribute_disabled.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
from __future__ import unicode_literals |
|
3 | ||
4 |
from django.db import migrations, models |
|
5 | ||
6 | ||
7 |
class Migration(migrations.Migration): |
|
8 | ||
9 |
dependencies = [ |
|
10 |
('authentic2', '0015_auto_20160621_1711'), |
|
11 |
('custom_user', '0011_manual_attribute_values_for_name_fields'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.AddField( |
|
16 |
model_name='attribute', |
|
17 |
name='disabled', |
|
18 |
field=models.BooleanField(default=False, verbose_name='disabled'), |
|
19 |
), |
|
20 |
] |
src/authentic2/models.py | ||
---|---|---|
160 | 160 |
blank=True, default=False) |
161 | 161 |
kind = models.CharField(max_length=16, |
162 | 162 |
verbose_name=_('kind')) |
163 |
disabled = models.BooleanField(verbose_name=_('disabled'), |
|
164 |
blank=True, default=False) |
|
165 | ||
166 |
objects = managers.AttributeManager(disabled=False) |
|
167 |
all_objects = managers.AttributeManager() |
|
163 | 168 | |
164 |
objects = managers.GetByNameManager() |
|
165 | 169 |
registration_attributes = QueryManager(asked_on_registration=True) |
166 | 170 |
user_attributes = QueryManager(user_editable=True) |
167 | 171 |
src/authentic2/saml/managers.py | ||
---|---|---|
12 | 12 |
from django.contrib.contenttypes.models import ContentType |
13 | 13 | |
14 | 14 | |
15 |
from model_utils import managers |
|
16 | ||
17 | 15 |
from . import lasso_helper |
18 | 16 |
from ..managers import GetBySlugQuerySet, GenericManager |
19 | 17 | |
... | ... | |
28 | 26 |
if not store.exists(key): |
29 | 27 |
o.delete() |
30 | 28 | |
31 |
SessionLinkedManager = managers.PassThroughManager \ |
|
32 |
.for_queryset_class(SessionLinkedQuerySet) |
|
29 |
SessionLinkedManager = models.Manager.from_queryset(SessionLinkedQuerySet) |
|
33 | 30 | |
34 | 31 |
class LibertyFederationManager(models.Manager): |
35 | 32 |
def cleanup(self): |
... | ... | |
80 | 77 |
def without_federation(self, user): |
81 | 78 |
return self.exclude(identity_provider__libertyfederation__user=user) |
82 | 79 | |
83 |
LibertyProviderManager = managers.PassThroughManager \ |
|
84 |
.for_queryset_class(LibertyProviderQueryset) |
|
80 |
LibertyProviderManager = models.Manager.from_queryset(LibertyProviderQueryset) |
|
85 | 81 | |
86 | 82 |
class LibertySessionQuerySet(SessionLinkedQuerySet): |
87 | 83 |
def to_session_dump(self): |
... | ... | |
93 | 89 |
'name_id_sp_name_qualifier') |
94 | 90 |
return lasso_helper.build_session_dump(sessions) |
95 | 91 | |
96 |
LibertySessionManager = managers.PassThroughManager \ |
|
97 |
.for_queryset_class(LibertySessionQuerySet) |
|
92 |
LibertySessionManager = models.Manager.from_queryset(LibertySessionQuerySet) |
|
98 | 93 | |
99 | 94 |
class GetByLibertyProviderManager(models.Manager): |
100 | 95 |
def get_by_natural_key(self, slug): |
src/authentic2_idp_cas/managers.py | ||
---|---|---|
1 |
import datetime |
|
2 | 1 |
import urlparse |
3 | 2 |
from datetime import timedelta |
4 | 3 | |
4 |
from django.db import models |
|
5 | 5 |
from django.db.models import query |
6 | 6 |
from django.utils.timezone import now |
7 | 7 | |
8 |
from model_utils import managers |
|
9 | ||
10 | 8 | |
11 | 9 |
class TicketQuerySet(query.QuerySet): |
12 | 10 |
def clean_expired(self): |
... | ... | |
37 | 35 |
return matches[0][1] |
38 | 36 | |
39 | 37 | |
40 |
ServiceManager = managers.PassThroughManager.for_queryset_class(ServiceQuerySet)
|
|
38 |
ServiceManager = models.Manager.from_queryset(ServiceQuerySet)
|
|
41 | 39 | |
42 |
TicketManager = managers.PassThroughManager.for_queryset_class(TicketQuerySet) |
|
40 |
TicketManager = models.Manager.from_queryset(TicketQuerySet) |
tests/test_all.py | ||
---|---|---|
103 | 103 |
'multiple': False, |
104 | 104 |
'user_visible': False, |
105 | 105 |
'required': False, |
106 |
'disabled': False, |
|
106 | 107 |
} |
107 | 108 |
}, |
108 | 109 |
{ |
tests/test_api.py | ||
---|---|---|
201 | 201 |
'username': 'foobar'}) |
202 | 202 |
resp = app.post_json('/api/users/', payload, status=status) |
203 | 203 |
assert resp.json['uuid'] == '1234567890' |
204 |
assert 'title' in resp.json |
|
205 |
at.disabled = True |
|
206 |
at.save() |
|
207 |
resp = app.get('/api/users/1234567890/') |
|
208 |
assert 'title' not in resp.json |
|
204 | 209 | |
205 | 210 | |
206 | 211 |
def test_api_users_create_send_mail(app, settings, superuser): |
tests/test_profile.py | ||
---|---|---|
70 | 70 |
assert attribute.get_value(simple_user) == '0123456789' |
71 | 71 | |
72 | 72 |
resp = app.get(url, status=200) |
73 |
assert 'phone' in resp |
|
73 | 74 |
assert 'readonly' in resp.form['edit-profile-phone'].attrs |
75 | ||
76 |
attribute.disabled = True |
|
77 |
attribute.save() |
|
78 |
resp = app.get(url, status=200) |
|
79 |
assert 'phone' not in resp |
|
80 |
assert attribute.get_value(simple_user) == '0123456789' |
|
74 |
- |