Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import logging
3from django.contrib import messages
4from django.contrib.auth.decorators import login_required
5from django.shortcuts import redirect, render
7from discuss_data.dhrep.token import InvalidTokenException, TokenHelper
8from discuss_data.core.decorators import dd_tou_accepted
10logger = logging.getLogger(__name__)
13@login_required
14@dd_tou_accepted
15def get_token(request):
16 """ checks for a valid token stored in the session and
17 shows a link to acquire a new token if no valid token is found
19 :param request: object that contains metadata about the request
20 :type request: HttpRequest
21 :return: renders template to show token info or redirects to dataset publish process
22 :rtype: HttpResponse, HttpResponseRedirect
24 """
26 th = TokenHelper()
27 t = th.get_token_from_session(request)
29 logger.debug(t)
31 if not t:
32 messages.warning(request, "No Token provided.")
33 return render(request, "dhrep/_getToken.html", {"requestUri": th.request_url})
35 if not t.check():
36 messages.error(request, "Token " + t.access_token + " is " + t.info())
37 request.session.pop("token")
38 return render(request, "dhrep/_getToken.html", {"requestUri": th.request_url})
40 messages.success(request, "Token " + t.access_token + " is " + t.info())
41 ds_uuid = request.session.pop("ds_uuid", False)
42 logger.debug(ds_uuid)
43 if ds_uuid:
44 return redirect("dddatasets:prep_edit_publish_final", ds_uuid)
46 return render(
47 request, "dhrep/_showToken.html", {"token": t.access_token, "info": t.info()},
48 )
51@login_required
52@dd_tou_accepted
53def show_token(request, token):
54 """[summary]
56 :param request: object that contains metadata about the request
57 :type request: HttpRequest
58 :param token: token uri fragment
59 :type token: str
60 :return: renders template to show token info or redirects to dataset publish process
61 :rtype: HttpResponse, HttpResponseRedirect
63 Returns:
64 [type] -- [description]
65 """
66 th = TokenHelper()
67 t = th.get_token_from_session(request)
68 if t:
69 if t.check():
70 messages.success(request, "Token " + t.access_token + " is " + t.info())
71 ds_uuid = request.session.pop("ds_uuid", False)
72 logger.debug(ds_uuid)
73 if ds_uuid:
74 return redirect("dddatasets:prep_edit_publish_final", ds_uuid)
75 else:
76 return render(
77 request,
78 "dhrep/_showToken.html",
79 {"token": t.access_token, "info": t.info()},
80 )
82 messages.error(request, "Token " + t.access_token + " is " + t.info())
83 request.session.pop("token")
85 try:
86 t = th.create_token_object(token)
87 except InvalidTokenException:
88 messages.error(request, "Token " + token + " is malformed.")
89 return render(request, "dhrep/_getToken.html", {"requestUri": th.request_url})
91 if t.check():
92 request.session["token"] = t.to_dict()
93 messages.success(request, "Token " + t.access_token + " is " + t.info())
94 ds_uuid = request.session.pop("ds_uuid", False)
95 logger.debug(ds_uuid)
96 if ds_uuid:
97 return redirect("dddatasets:prep_edit_publish_final", ds_uuid)
99 return render(
100 request,
101 "dhrep/_showToken.html",
102 {"token": t.access_token, "info": t.info()},
103 )
105 messages.error(request, "Token " + t.access_token + " is " + t.info())
106 return render(request, "dhrep/_getToken.html", {"requestUri": th.request_url},)