check for config file permissions since it contains passwords
This commit is contained in:
parent
288ea1f142
commit
6159a789b5
2 changed files with 16 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ from __future__ import with_statement
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
|
import stat
|
||||||
from ConfigParser import SafeConfigParser
|
from ConfigParser import SafeConfigParser
|
||||||
from logging import warning, debug
|
from logging import warning, debug
|
||||||
|
|
||||||
|
|
@ -75,8 +76,15 @@ class Module:
|
||||||
return self.klass(weboob, name, config)
|
return self.klass(weboob, name, config)
|
||||||
|
|
||||||
class BackendsConfig:
|
class BackendsConfig:
|
||||||
|
class WrongPermissions(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
def __init__(self, confpath):
|
def __init__(self, confpath):
|
||||||
self.confpath = confpath
|
self.confpath = confpath
|
||||||
|
mode = os.stat(confpath).st_mode
|
||||||
|
if mode & stat.S_IRGRP or mode & stat.S_IROTH:
|
||||||
|
raise self.WrongPermissions(
|
||||||
|
u'Weboob will not start until config file %s is readable by group or other users.' % confpath)
|
||||||
|
|
||||||
def iter_backends(self):
|
def iter_backends(self):
|
||||||
config = SafeConfigParser()
|
config = SafeConfigParser()
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ from functools import partial
|
||||||
from inspect import getargspec
|
from inspect import getargspec
|
||||||
|
|
||||||
from weboob import Weboob
|
from weboob import Weboob
|
||||||
|
from weboob.modules import BackendsConfig
|
||||||
|
|
||||||
class BaseApplication(object):
|
class BaseApplication(object):
|
||||||
# Application name
|
# Application name
|
||||||
|
|
@ -69,6 +70,13 @@ class BaseApplication(object):
|
||||||
sys.exit(app.main(sys.argv))
|
sys.exit(app.main(sys.argv))
|
||||||
|
|
||||||
class ConsoleApplication(BaseApplication):
|
class ConsoleApplication(BaseApplication):
|
||||||
|
def __init__(self):
|
||||||
|
try:
|
||||||
|
BaseApplication.__init__(self)
|
||||||
|
except BackendsConfig.WrongPermissions, e:
|
||||||
|
print >>sys.stderr, 'Error: %s' % e.message
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
def ask(self, question, default=None, masked=False, regexp=None):
|
def ask(self, question, default=None, masked=False, regexp=None):
|
||||||
"""
|
"""
|
||||||
Ask a question to user.
|
Ask a question to user.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue