Hide keyboard shortcuts

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 

2 

3from django.contrib import messages 

4from django.contrib.auth.decorators import login_required 

5from django.shortcuts import redirect, render 

6 

7from discuss_data.dhrep.token import InvalidTokenException, TokenHelper 

8from discuss_data.core.decorators import dd_tou_accepted 

9 

10logger = logging.getLogger(__name__) 

11 

12 

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 

18 

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 

23 

24 """ 

25 

26 th = TokenHelper() 

27 t = th.get_token_from_session(request) 

28 

29 logger.debug(t) 

30 

31 if not t: 

32 messages.warning(request, "No Token provided.") 

33 return render(request, "dhrep/_getToken.html", {"requestUri": th.request_url}) 

34 

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}) 

39 

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) 

45 

46 return render( 

47 request, "dhrep/_showToken.html", {"token": t.access_token, "info": t.info()}, 

48 ) 

49 

50 

51@login_required 

52@dd_tou_accepted 

53def show_token(request, token): 

54 """[summary] 

55 

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 

62 

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 ) 

81 

82 messages.error(request, "Token " + t.access_token + " is " + t.info()) 

83 request.session.pop("token") 

84 

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}) 

90 

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) 

98 

99 return render( 

100 request, 

101 "dhrep/_showToken.html", 

102 {"token": t.access_token, "info": t.info()}, 

103 ) 

104 

105 messages.error(request, "Token " + t.access_token + " is " + t.info()) 

106 return render(request, "dhrep/_getToken.html", {"requestUri": th.request_url},)