Revision 5ce3ce4f snf-astakos-app/astakos/im/api/admin.py
b/snf-astakos-app/astakos/im/api/admin.py | ||
---|---|---|
39 | 39 |
from django.http import HttpResponse |
40 | 40 |
from django.utils import simplejson as json |
41 | 41 |
|
42 |
from astakos.im.api.faults import (Fault, Unauthorized, InternalServerError, BadRequest, |
|
42 |
from astakos.im.api.faults import ( |
|
43 |
Fault, Unauthorized, InternalServerError, BadRequest, |
|
43 | 44 |
Forbidden) |
44 | 45 |
from astakos.im.api import render_fault, _get_user_by_email, _get_user_by_username |
45 | 46 |
from astakos.im.models import AstakosUser |
... | ... | |
48 | 49 |
logger = logging.getLogger(__name__) |
49 | 50 |
format = ('%a, %d %b %Y %H:%M:%S GMT') |
50 | 51 |
|
52 |
|
|
51 | 53 |
def api_method(http_method=None, token_required=False, perms=None): |
52 | 54 |
"""Decorator function for views that implement an API method.""" |
53 | 55 |
if not perms: |
... | ... | |
81 | 83 |
return wrapper |
82 | 84 |
return decorator |
83 | 85 |
|
86 |
|
|
84 | 87 |
@api_method(http_method='GET', token_required=True) |
85 | 88 |
def authenticate_old(request, user=None): |
86 | 89 |
# Normal Response Codes: 204 |
... | ... | |
102 | 105 |
raise Unauthorized('Pending approval terms') |
103 | 106 |
|
104 | 107 |
response = HttpResponse() |
105 |
response.status=204
|
|
106 |
user_info = {'username':user.username, |
|
107 |
'uniq':user.email, |
|
108 |
'auth_token':user.auth_token, |
|
109 |
'auth_token_created':user.auth_token_created.isoformat(), |
|
110 |
'auth_token_expires':user.auth_token_expires.isoformat(), |
|
111 |
'has_credits':user.has_credits, |
|
112 |
'has_signed_terms':user.signed_terms, |
|
113 |
'groups':[g.name for g in user.groups.all()]} |
|
108 |
response.status = 204
|
|
109 |
user_info = {'username': user.username,
|
|
110 |
'uniq': user.email,
|
|
111 |
'auth_token': user.auth_token,
|
|
112 |
'auth_token_created': user.auth_token_created.isoformat(),
|
|
113 |
'auth_token_expires': user.auth_token_expires.isoformat(),
|
|
114 |
'has_credits': user.has_credits,
|
|
115 |
'has_signed_terms': user.signed_terms,
|
|
116 |
'groups': [g.name for g in user.groups.all()]}
|
|
114 | 117 |
response.content = json.dumps(user_info) |
115 | 118 |
response['Content-Type'] = 'application/json; charset=UTF-8' |
116 | 119 |
response['Content-Length'] = len(response.content) |
117 | 120 |
return response |
118 | 121 |
|
122 |
|
|
119 | 123 |
@api_method(http_method='GET', token_required=True) |
120 | 124 |
def authenticate(request, user=None): |
121 | 125 |
# Normal Response Codes: 204 |
... | ... | |
137 | 141 |
raise Unauthorized('Pending approval terms') |
138 | 142 |
|
139 | 143 |
response = HttpResponse() |
140 |
response.status=204
|
|
141 |
user_info = {'userid':user.username, |
|
142 |
'email':[user.email], |
|
143 |
'name':user.realname, |
|
144 |
'auth_token':user.auth_token, |
|
145 |
'auth_token_created':epoch(user.auth_token_created), |
|
146 |
'auth_token_expires':epoch(user.auth_token_expires), |
|
147 |
'has_credits':user.has_credits, |
|
148 |
'is_active':user.is_active, |
|
149 |
'groups':[g.name for g in user.groups.all()]} |
|
144 |
response.status = 204
|
|
145 |
user_info = {'userid': user.username,
|
|
146 |
'email': [user.email],
|
|
147 |
'name': user.realname,
|
|
148 |
'auth_token': user.auth_token,
|
|
149 |
'auth_token_created': epoch(user.auth_token_created),
|
|
150 |
'auth_token_expires': epoch(user.auth_token_expires),
|
|
151 |
'has_credits': user.has_credits,
|
|
152 |
'is_active': user.is_active,
|
|
153 |
'groups': [g.name for g in user.groups.all()]}
|
|
150 | 154 |
response.content = json.dumps(user_info) |
151 | 155 |
response['Content-Type'] = 'application/json; charset=UTF-8' |
152 | 156 |
response['Content-Length'] = len(response.content) |
153 | 157 |
return response |
154 | 158 |
|
159 |
|
|
155 | 160 |
@api_method(http_method='GET', token_required=True, perms=['im.can_access_userinfo']) |
156 | 161 |
def get_user_by_email(request, user=None): |
157 | 162 |
# Normal Response Codes: 200 |
... | ... | |
163 | 168 |
email = request.GET.get('name') |
164 | 169 |
return _get_user_by_email(email) |
165 | 170 |
|
171 |
|
|
166 | 172 |
@api_method(http_method='GET', token_required=True, perms=['im.can_access_userinfo']) |
167 | 173 |
def get_user_by_username(request, user_id, user=None): |
168 | 174 |
# Normal Response Codes: 200 |
Also available in: Unified diff