Revision 9fd36718
b/snf-cyclades-app/synnefo/app_settings/default/helpdesk.py | ||
---|---|---|
1 |
#Enable the helpdesk application |
|
2 |
#HELPDESK_ENABLED = True |
|
3 |
|
|
4 |
# Which is the cookie name that stores the token, leave it commented out |
|
5 |
# to use same value as UI_AUTH_COOKIE_NAME value. |
|
6 |
#HELPDESK_AUTH_COOKIE_NAME = UI_AUTH_COOKIE_NAME |
b/snf-cyclades-app/synnefo/helpdesk/fixtures/helpdesk_test.json | ||
---|---|---|
94 | 94 |
} |
95 | 95 |
}, |
96 | 96 |
{ |
97 |
"model": "db.NetworkLink",
|
|
97 |
"model": "db.NetworkInterface",
|
|
98 | 98 |
"pk": 1, |
99 | 99 |
"fields": { |
100 | 100 |
"index": 0, |
101 |
"name": "snf_null", |
|
102 |
"available": 0 |
|
101 |
"machine": 1, |
|
102 |
"network": 1, |
|
103 |
"mac": "00:11" |
|
103 | 104 |
} |
104 | 105 |
} |
105 | 106 |
] |
b/snf-cyclades-app/synnefo/helpdesk/tests.py | ||
---|---|---|
68 | 68 |
astakos.get_user = get_user_mock |
69 | 69 |
|
70 | 70 |
settings.SKIP_SSH_VALIDATION = True |
71 |
settings.HELPDESK_ENABLED = True |
|
71 | 72 |
self.client = AaiClient() |
72 | 73 |
self.user = 'test' |
73 | 74 |
self.keys_url = reverse('ui_keys_collection') |
74 | 75 |
|
76 |
def test_enabled_setting(self): |
|
77 |
settings.HELPDESK_ENABLED = False |
|
78 |
|
|
79 |
# helpdesk is disabled |
|
80 |
r = self.client.get(reverse('helpdesk-index'), user_token="0001") |
|
81 |
self.assertEqual(r.status_code, 404) |
|
82 |
r = self.client.get(reverse('helpdesk-details', args=['testuser@test.com']), |
|
83 |
user_token="0001") |
|
84 |
self.assertEqual(r.status_code, 404) |
|
85 |
|
|
75 | 86 |
def test_ip_lookup(self): |
76 | 87 |
# ip does not exist, proper message gets displayed |
77 | 88 |
r = self.client.get(reverse('helpdesk-details', |
b/snf-cyclades-app/synnefo/helpdesk/views.py | ||
---|---|---|
32 | 32 |
|
33 | 33 |
return None |
34 | 34 |
|
35 |
|
|
35 | 36 |
# TODO: here we mix ui setting with helpdesk settings |
36 | 37 |
# if sometime in the future helpdesk gets splitted from the |
37 | 38 |
# cyclades api code this should change and helpdesk should provide |
38 | 39 |
# its own setting HELPDESK_AUTH_COOKIE_NAME. |
39 |
HELPDESK_AUTH_COOKIE = getattr(settings, 'UI_AUTH_COOKIE_NAME', '_pithos2_a') |
|
40 |
AUTH_COOKIE = getattr(settings, 'UI_AUTH_COOKIE_NAME', getattr(settings, |
|
41 |
'HELPDESK_AUTH_COOKIE_NAME', '_pithos2_a')) |
|
42 |
|
|
40 | 43 |
|
41 | 44 |
def helpdesk_user_required(func, groups=['helpdesk']): |
42 | 45 |
""" |
... | ... | |
44 | 47 |
permissions (exists in helpdesk group) |
45 | 48 |
""" |
46 | 49 |
def wrapper(request, *args, **kwargs): |
47 |
token = get_token_from_cookie(request, HELPDESK_AUTH_COOKIE) |
|
50 |
HELPDESK_ENABLED = getattr(settings, 'HELPDESK_ENABLED', True) |
|
51 |
if not HELPDESK_ENABLED: |
|
52 |
raise Http404 |
|
53 |
|
|
54 |
token = get_token_from_cookie(request, AUTH_COOKIE) |
|
48 | 55 |
get_user(request, settings.ASTAKOS_URL, fallback_token=token) |
49 | 56 |
if hasattr(request, 'user') and request.user: |
50 | 57 |
groups = request.user.get('groups', []) |
Also available in: Unified diff