# -*- coding: utf-8 -*- # # Copyright (C) 2007, 2008 by Jan Dittberner. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # # Version: $Id$ """This module provides the command line interface code for system user management.""" from gnuviechadmin.cli.CliCommand import CliCommand import sys class SysuserCli(CliCommand): """Command line interface command for system user management. This class implements `gnuviechadmin.cli.CliCommand.CliCommand`. """ name = "sysuser" description = "manage system users" _optionmap = { "create": ("create a new system user with the given options.", [(["-n", "--username"], "username", "the system user name", False), (["-t", "--usertype"], "usertype", "the numeric user type", False), (["-h", "--home"], "home", "the home directory", False), (["-s", "--shell"], "shell", "true if the user should get shell access", False), (["-p", "--password"], "clearpass", "the password for the user", False), (["-c", "--clientid"], "clientid", "the client id", True)]), "list": ("list existing system users.", []), "delete": ("delete a system user.", [(["-s", "--sysuserid"], "sysuserid", "the system user id", True)])} def _execute(self, subcommand): """Executes `subcommand`. This method implements `CliCommand._execute()`. """ self.logger.debug("execute %s with data %s", subcommand, str(self._data)) from gnuviechadmin.backend import sysuser from gnuviechadmin import exceptions if subcommand == "create": try: mysysuser = sysuser.SysuserHandler(self._verbose).create( **self._data) if self._verbose: print mysysuser except exceptions.CreationFailedError, cfe: self._usage() print cfe sys.exit(2) elif subcommand == "list": sysusers = sysuser.SysuserHandler(self._verbose).fetchall() for su in sysusers: print su elif subcommand == "delete": sysuser.SysuserHandler(self._verbose).delete( self._data["sysuserid"]) def __init__(self, argv): """Constructor for the sysuser command.""" CliCommand.CliCommand.__init__(self, argv)