add "silent" flag to openwebrx-admin
This commit is contained in:
parent
e548d6a5de
commit
d99669b3aa
@ -151,15 +151,19 @@ class UserList(object):
|
|||||||
except Exception:
|
except Exception:
|
||||||
logger.exception("error while writing users file %s", usersFile)
|
logger.exception("error while writing users file %s", usersFile)
|
||||||
|
|
||||||
|
def _getUsername(self, user):
|
||||||
|
if isinstance(user, User):
|
||||||
|
return user.name
|
||||||
|
elif isinstance(user, str):
|
||||||
|
return user
|
||||||
|
else:
|
||||||
|
raise ValueError("invalid user type")
|
||||||
|
|
||||||
def addUser(self, user: User):
|
def addUser(self, user: User):
|
||||||
self[user.name] = user
|
self[user.name] = user
|
||||||
|
|
||||||
def deleteUser(self, user):
|
def deleteUser(self, user):
|
||||||
if isinstance(user, User):
|
del self[self._getUsername(user)]
|
||||||
username = user.name
|
|
||||||
else:
|
|
||||||
username = user
|
|
||||||
del self[username]
|
|
||||||
|
|
||||||
def __delitem__(self, key):
|
def __delitem__(self, key):
|
||||||
if key not in self.users:
|
if key not in self.users:
|
||||||
|
@ -2,6 +2,7 @@ from owrx.version import openwebrx_version
|
|||||||
from owrxadmin.commands import NewUser, DeleteUser
|
from owrxadmin.commands import NewUser, DeleteUser
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -10,13 +11,25 @@ def main():
|
|||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("command", help="One of the following commands: adduser, removeuser")
|
parser.add_argument("command", help="One of the following commands: adduser, removeuser")
|
||||||
parser.add_argument("--noninteractive", action="store_true", help="Don't ask for any user input (useful for automation)")
|
parser.add_argument("--noninteractive", action="store_true", help="Don't ask for any user input (useful for automation)")
|
||||||
|
parser.add_argument("--silent", action="store_true", help="Ignore errors (useful for automation)")
|
||||||
parser.add_argument("-u", "--user")
|
parser.add_argument("-u", "--user")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.command == "adduser":
|
if args.command == "adduser":
|
||||||
NewUser().run(args)
|
command = NewUser()
|
||||||
elif args.command == "removeuser":
|
elif args.command == "removeuser":
|
||||||
DeleteUser().run(args)
|
command = DeleteUser()
|
||||||
else:
|
else:
|
||||||
print("Unknown command: {command}".format(command=args.command))
|
if not args.silent:
|
||||||
sys.exit(1)
|
print("Unknown command: {command}".format(command=args.command))
|
||||||
|
sys.exit(1)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
try:
|
||||||
|
command.run(args)
|
||||||
|
except Exception:
|
||||||
|
if not args.silent:
|
||||||
|
print("Error running command:")
|
||||||
|
traceback.print_exc()
|
||||||
|
sys.exit(1)
|
||||||
|
sys.exit(0)
|
||||||
|
@ -27,6 +27,10 @@ class UserCommand(Command, metaclass=ABCMeta):
|
|||||||
class NewUser(UserCommand):
|
class NewUser(UserCommand):
|
||||||
def run(self, args):
|
def run(self, args):
|
||||||
username = self.getUser(args)
|
username = self.getUser(args)
|
||||||
|
userList = UserList()
|
||||||
|
# early test to bypass the password stuff if the user already exists
|
||||||
|
if username in userList:
|
||||||
|
raise KeyError("User {username} already exists".format(username=username))
|
||||||
|
|
||||||
if args.noninteractive:
|
if args.noninteractive:
|
||||||
print("Generating password for user {username}...".format(username=username))
|
print("Generating password for user {username}...".format(username=username))
|
||||||
@ -43,7 +47,6 @@ class NewUser(UserCommand):
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
print("Creating user {username}...".format(username=username))
|
print("Creating user {username}...".format(username=username))
|
||||||
userList = UserList()
|
|
||||||
user = User(name=username, enabled=True, password=DefaultPasswordClass(password))
|
user = User(name=username, enabled=True, password=DefaultPasswordClass(password))
|
||||||
userList.addUser(user)
|
userList.addUser(user)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user