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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

"""Certbot Enhancement Display""" 

import logging 

 

import zope.component 

 

from certbot import errors 

from certbot import interfaces 

from certbot.display import util as display_util 

 

 

logger = logging.getLogger(__name__) 

 

# Define a helper function to avoid verbose code 

util = zope.component.getUtility 

 

 

def ask(enhancement): 

"""Display the enhancement to the user. 

 

:param str enhancement: One of the 

:class:`certbot.CONFIG.ENHANCEMENTS` enhancements 

 

:returns: True if feature is desired, False otherwise 

:rtype: bool 

 

:raises .errors.Error: if the enhancement provided is not supported 

 

""" 

try: 

# Call the appropriate function based on the enhancement 

return DISPATCH[enhancement]() 

except KeyError: 

logger.error("Unsupported enhancement given to ask(): %s", enhancement) 

raise errors.Error("Unsupported Enhancement") 

 

 

def redirect_by_default(): 

"""Determines whether the user would like to redirect to HTTPS. 

 

:returns: True if redirect is desired, False otherwise 

:rtype: bool 

 

""" 

choices = [ 

("No redirect", "Make no further changes to the webserver configuration."), 

("Redirect", "Make all requests redirect to secure HTTPS access. " 

"Choose this for new sites, or if you're confident your site works on HTTPS. " 

"You can undo this change by editing your web server's configuration."), 

] 

 

code, selection = util(interfaces.IDisplay).menu( 

"Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.", 

choices, default=0, 

cli_flag="--redirect / --no-redirect", force_interactive=True) 

 

if code != display_util.OK: 

return False 

 

return selection == 1 

 

 

DISPATCH = { 

"redirect": redirect_by_default 

}