~mrooney/ecryptfs/nautilus-integration

« back to all changes in this revision

Viewing changes to src/python/ecryptapi.py

  • Committer: Michael Rooney
  • Date: 2009-05-28 10:40:56 UTC
  • Revision ID: mrooney@ubuntu.com-20090528104056-mqirt68bbs3quj5t
reflect api changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/env python
2
2
#
3
3
#    ecryptapi.py, Copyright 2008 Mike Rooney (https://launchpad.net/~mrooney)
4
 
#    Date: 2008-12-12
5
 
#    Version: 0.3
 
4
#    Date: 2009-5-28
 
5
#    Version: 0.4
6
6
#
7
 
#    This is a graphical GTK utility to manage an encrypted ~/Private
8
 
#    directory, allowing the user to mount and unmount, as well as enable
9
 
#    auto-mounting at login.
 
7
#    This is a python API for interacting with ecryptfs-utils and its
 
8
#    encrypted directories.
10
9
#
11
10
#    This program is free software: you can redistribute it and/or modify
12
11
#    it under the terms of the GNU General Public License as published by
28
27
PRIVATE_LOCATION_FILE = os.path.expanduser("~/.ecryptfs/Private.mnt")
29
28
PRIVATE_LOCATION = os.path.exists(PRIVATE_LOCATION_FILE) and open(PRIVATE_LOCATION_FILE).read().strip()
30
29
 
31
 
def setAutoMount(doAuto):
 
30
def set_automount(doAuto):
32
31
    """Enable or disable automounting for this user."""
33
32
    if doAuto:
34
33
        command = "touch %s" % AUTOMOUNT_FILE
39
38
 
40
39
    return commands.getstatusoutput(command)
41
40
 
42
 
def getAutoMount():
 
41
def get_automount():
43
42
    """Return whether or not automounting is enabled for this user."""
44
43
    return os.path.exists(AUTOMOUNT_FILE)
45
44
 
46
 
def setAutoUnmount(doAuto):
 
45
def set_autounmount(doAuto):
47
46
    """Enable or disable automounting for this user."""
48
47
    if doAuto:
49
48
        command = "touch %s" % AUTOUMOUNT_FILE
52
51
 
53
52
    return commands.getstatusoutput(command)
54
53
 
55
 
def getAutoUnmount():
 
54
def get_autounmount():
56
55
    """Return whether or not automounting is enabled for this user."""
57
56
    return os.path.exists(AUTOUMOUNT_FILE)
58
57
 
59
 
def setMounted(doMount):
 
58
def set_mounted(doMount):
60
59
    """Set the mounted (unencrypted) state of ~/Private."""
61
60
    if doMount:
62
61
        command = "mount.ecryptfs_private"
65
64
 
66
65
    return commands.getstatusoutput(command)
67
66
 
68
 
def getMounted():
 
67
def get_mounted():
69
68
    """Return whether or not ~/Private is mounted (unencrypted)."""
70
69
    if PRIVATE_LOCATION:
71
70
        mounts = open("/proc/mounts").read()
73
72
    else:
74
73
        return False
75
74
 
76
 
def needsSetup():
 
75
def needs_setup():
 
76
    """
 
77
    Return whether or not an ecrypted directory has been set up by ecryptfs
 
78
    for this user, either Home or Private.
 
79
    """
77
80
    encryptedHome = False #TODO: implement
78
81
    encryptedPrivate = PRIVATE_LOCATION
79
82
    return not (encryptedHome or encryptedPrivate)