Added initial aliases stuff
This commit is contained in:
parent
f7540a702c
commit
fc0b5d66ef
1 changed files with 30 additions and 3 deletions
|
@ -73,7 +73,6 @@ parser.add_option('--nossh',
|
|||
default = False,
|
||||
action = 'store_true',
|
||||
help = _('Do not create ssh keys'))
|
||||
|
||||
parser.add_option('-s', '--server',
|
||||
dest = 'FAS_URL',
|
||||
default = None,
|
||||
|
@ -89,6 +88,12 @@ parser.add_option('-d', '--disable',
|
|||
default = False,
|
||||
action = 'store_true',
|
||||
help = _('Disable FAS synced shell accounts'))
|
||||
parser.add_option('-a', '--aliases',
|
||||
dest = 'aliases',
|
||||
default = False,
|
||||
action = 'store_true',
|
||||
help = _('Sync mail aliases'))
|
||||
|
||||
|
||||
(opts, args) = parser.parse_args()
|
||||
|
||||
|
@ -120,6 +125,7 @@ class MakeShellAccounts(BaseClient):
|
|||
groups = None
|
||||
people = None
|
||||
memberships = None
|
||||
emails = None
|
||||
group_mapping = {}
|
||||
|
||||
def mk_tempdir(self):
|
||||
|
@ -194,6 +200,14 @@ class MakeShellAccounts(BaseClient):
|
|||
print >> sys.stderr, 'Could not determine shell for %s. Defaulting to /sbin/nologin' % username
|
||||
return '/sbin/nologin'
|
||||
|
||||
def aliases_txt(self):
|
||||
''' update your mail aliases file '''
|
||||
self.emails = self.email_list()
|
||||
email_file = codecs.open(self.temp + '/aliases', mode='w', encoding='utf-8')
|
||||
for person in self.emails:
|
||||
email_file.write("%s: %s" % (person, self.emails[person]))
|
||||
email_file.close()
|
||||
|
||||
def passwd_text(self, people=None):
|
||||
i = 0
|
||||
passwd_file = codecs.open(self.temp + '/passwd.txt', mode='w', encoding='utf-8')
|
||||
|
@ -229,7 +243,6 @@ class MakeShellAccounts(BaseClient):
|
|||
return True
|
||||
return False
|
||||
|
||||
|
||||
def groups_text(self, groups=None, people=None):
|
||||
i = 0
|
||||
file = open(self.temp + '/group.txt', 'w')
|
||||
|
@ -282,6 +295,11 @@ class MakeShellAccounts(BaseClient):
|
|||
self.people = self.send_request('user/list', auth=True, input=params)['people']
|
||||
return self.people
|
||||
|
||||
def email_list(self, search='*'):
|
||||
params = {'search' : search}
|
||||
self.emails = self.send_request('user/email_list', auth=True, input=params)['emails']
|
||||
return self.emails
|
||||
|
||||
def make_group_db(self):
|
||||
self.groups_text()
|
||||
os.system('makedb -o %s/group.db %s/group.txt' % (self.temp, self.temp))
|
||||
|
@ -354,6 +372,7 @@ class MakeShellAccounts(BaseClient):
|
|||
f.close()
|
||||
os.chmod(os.path.join(ssh_dir, 'authorized_keys'), 0600)
|
||||
os.path.walk(ssh_dir, _chown, [person['id'], person['id']])
|
||||
|
||||
|
||||
def enable():
|
||||
temp = tempfile.mkdtemp('-tmp', 'fas-', config.get('global', 'temp').strip('"'))
|
||||
|
@ -422,5 +441,13 @@ if __name__ == '__main__':
|
|||
if not opts.no_ssh_keys:
|
||||
fas.create_ssh_keys()
|
||||
fas.rm_tempdir()
|
||||
if not (opts.install or opts.enable or opts.disable):
|
||||
if opts.aliases:
|
||||
try:
|
||||
fas = MakeShellAccounts(FAS_URL, config.get('global', 'login').strip('"'), config.get('global', 'password').strip('"'), False)
|
||||
except AuthError, e:
|
||||
print >> sys.stderr, e
|
||||
sys.exit(1)
|
||||
fas.create_aliases()
|
||||
|
||||
if not (opts.install or opts.enable or opts.disable or opts.aliases):
|
||||
parser.print_help()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue