user related commands
user-addperm <name> <perm> .. add permission.
<name> <permit> - add permit to permit list of <name>.
<name> <status> - add status to user data.
<name> <userhost> - introduce a new user to the bot.
<name> <userhost> - add to userhosts to user data.
<nick> - get user data of <nick>.
user-delemail .. reset email of user giving the command.
<name> - remove user.
<name> <perm> - delete permission of name.
<name> <status> - delete status of name.
<name> <userhost> - remove from userhosts of name.
no arguments - show email of user giving the command.
<name> - get email of name.
<nick> - fetch name of nick.
<name> - get permissions of a user.
<name> - get status of name.
<name> - get userhosts of a user.
<perm> - list users with permission <perm>.
<status> - list users with status <status>.
<userhost> - get data of <userhost>.
<nick> - introduce a new user to the bot.
<name> <nick> - merge the userhost into a already existing user.
no arguments - show name of user giving the command.
no aruguments - show registered users.
no arguments - get permit list of user giving the command.
no arguments - get permission of the user given the command.
<name> <email> - set email of name.
<name> - get data of <name>.
no arguments - get status of user given the command.
<name> <permit> - remove (name, permit) from permit list.
no arguments - get userhosts of user giving the command.
<txt> - scan for user.
<what> - search for user matching given userhost.
no arguments - get your username.
# gozerbot/plugs/user.py # # """ user related commands """ __status__ = "seen"
from gozerbot.utils.generic import getwho, stripident from gozerbot.utils.exception import handle_exception from gozerbot.utils.log import rlog from gozerbot.utils.name import stripname from gozerbot.users import users from gozerbot.commands import cmnds from gozerbot.examples import examples from gozerbot.aliases import aliasdel, aliasset from gozerbot.plughelp import plughelp from gozerbot.tests import tests
plughelp.add('user', 'manage users')
def handle_whoami(bot, ievent): """ no arguments - get your username. """ ievent.reply('%s' % users.getname(ievent.userhost)) cmnds.add('user-whoami', handle_whoami, 'USER') examples.add('user-whoami', 'get your username', 'user-whoami') aliasset('whoami', 'user-whoami') tests.add('whoami')
def handle_meet(bot, ievent): """ <nick> - introduce a new user to the bot. """ try: nick = ievent.args[0] except IndexError: ievent.missing('<nick>') ; return if users.exist(nick): ievent.reply('there is already a user with username %s' % nick) ; return userhost = getwho(bot, nick) if not userhost: ievent.reply("can't find userhost of %s" % nick) ; return username = users.getname(userhost) if username: ievent.reply('we already have a user with userhost %s (%s)' % (userhost, username)) return result = 0 name = stripname(nick.lower()) result = users.add(name, [userhost, ], ['USER', ]) if result: ievent.reply('%s (%s) added to user database' % (nick, name)) else: ievent.reply('add failed') cmnds.add('user-meet', handle_meet, ['OPER', 'MEET']) examples.add('user-meet', 'introduce <nick> to the bot', 'user-meet dunker') aliasset('meet', 'user-meet') tests.add('meet test').add('delete test')
def handle_adduser(bot, ievent): """ <name> <userhost> - introduce a new user to the bot. """ try: (name, userhost) = ievent.args except ValueError: ievent.missing('<name> <userhost>') ; return username = users.getname(userhost) if username: ievent.reply('we already have a user with userhost %s (%s)' % (userhost, username)) return result = 0 name = stripname(name.lower()) result = users.add(name, [userhost, ], ['USER', ]) if result: ievent.reply('%s added to user database' % name) else: ievent.reply('add failed') cmnds.add('user-add', handle_adduser, 'OPER') examples.add('user-add', 'add <name> with <userhost> to the bot', 'user-add dunker bart@localhost') tests.add('user-add mtest1 mekker@test1', 'mtest1 added to user database').add('delete mtest1')
def handle_merge(bot, ievent): """ <name> <nick> - merge the userhost into a already existing user. """ if len(ievent.args) != 2: ievent.missing('<name> <nick>') ; return name, nick = ievent.args name = name.lower() if users.gotperm(name, 'OPER') and not users.allowed(ievent.userhost, 'OPER'): ievent.reply("only OPER perm can merge with OPER user") return if name == 'owner' and not bot.ownercheck(ievent, "can merge with owner user"): return if not users.exist(name): ievent.reply("we have no user %s" % name) ; return userhost = getwho(bot, nick) if not userhost: ievent.reply("can't find userhost of %s" % nick) ; return username = users.getname(userhost) if username: ievent.reply('we already have a user with userhost %s (%s)' % (userhost, username)) return result = users.merge(name, userhost) if result: ievent.reply('%s merged' % nick) else: ievent.reply('merge failed') cmnds.add('user-merge', handle_merge, ['OPER', 'MEET']) examples.add('user-merge', 'merge record with <name> with userhost from <nick>', 'merge bart dunker') aliasset('merge', 'user-merge') tests.add('user-add mtest2 mekker@test2').add('merge mtest2 bottest', 'bottest merged').add('delete mtest2')
def handle_delete(bot, ievent): """ <name> - remove user. """ if len(ievent.args) == 0: ievent.missing('<name>') ; return name = ievent.args[0].lower() if name == 'owner': ievent.reply("can't delete owner") ; return result = 0 name = name.lower() result = users.delete(name) if result: ievent.reply('%s deleted' % name) else: ievent.reply('delete of %s failed' % name) cmnds.add('user-del', handle_delete, 'OPER') examples.add('user-del', 'delete user with <username>' , 'user-del dunker') aliasset('delete', 'user-del') tests.add('user-add mtest3 mekker@test3').add('delete mtest3', 'mtest3 deleted')
def handle_userscan(bot, ievent): """ <txt> - scan for user. """ try: name = ievent.args[0] except IndexError: ievent.missing('<txt>') ; return name = name.lower() names = users.names() result = [] for i in names: if i.find(name) != -1: result.append(i) if result: ievent.reply("users matching %s: " % name, result, dot=True) else: ievent.reply('no users matched') ; return cmnds.add('user-scan', handle_userscan, 'OPER') examples.add('user-scan', 'search database for matching usernames', 'user-scan dunk') aliasset('us', 'user-scan') tests.add('user-add mtest4 mekker@test4').add('user-scan mte', 'mtest4').add('delete mtest4')
def handle_names(bot, ievent): """ no aruguments - show registered users. """ ievent.reply("usernames: ", users.names(), dot=True) cmnds.add('user-names', handle_names, 'OPER') examples.add('user-names', 'show names of registered users', 'user-names') aliasset('names', 'user-names') tests.add('user-add mtest5 mekker@test').add('user-names', 'mtest5').add('delete mtest5')
def handle_name(bot, ievent): """ no arguments - show name of user giving the command. """ ievent.reply('your name is %s' % users.getname(ievent.userhost)) cmnds.add('user-name', handle_name, 'USER') examples.add('user-name', 'show name of user giving the commands', 'user-name') aliasset('name', 'user-name') tests.add('user-name', 'exec')
def handle_getname(bot, ievent): """ <nick> - fetch name of nick. """ try: nick = ievent.args[0] except IndexError: ievent.missing("<nick>") ; return userhost = getwho(bot, nick) if not userhost: ievent.reply("can't find userhost of %s" % nick) ; return name = users.getname(userhost) if not name: ievent.reply("can't find user for %s" % userhost) ; return ievent.reply(name) cmnds.add('user-getname', handle_getname, 'USER') examples.add('user-getname', 'user-getname <nick> .. get the name of <nick>', 'user-getname dunker') aliasset('gn', 'user-getname') aliasset('getname', 'user-getname') tests.add('user-getname test') def handle_addperm(bot, ievent): """ user-addperm <name> <perm> .. add permission. """ if len(ievent.args) != 2: ievent.missing('<name> <perm>') ; return name, perm = ievent.args perm = perm.upper() name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return result = 0 if users.gotperm(name, perm): ievent.reply('%s already has permission %s' % (name, perm)) ; return result = users.addperm(name, perm) if result: ievent.reply('%s perm added' % perm) else: ievent.reply('perm add failed') cmnds.add('user-addperm', handle_addperm, 'OPER') examples.add('user-addperm', 'add permissions to user <name>', 'user-addperm dunker rss') aliasset('setperms', 'user-addperm') aliasset('addperms', 'user-addperm') tests.add('user-add mtest6 mekker@test6', 'mtest6').add('user-addperm mtest6 mekker', 'MEKKER perm added').add('delete mtest6') def handle_getperms(bot, ievent): """ <name> - get permissions of a user. """ try: name = ievent.args[0] except IndexError: ievent.missing('<name>') ; return name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return perms = users.getuserperms(name) if perms: ievent.reply("permissions of %s: " % name, perms, dot=True) else: ievent.reply('%s has no permissions set' % name) cmnds.add('user-getperms', handle_getperms, 'OPER') examples.add('user-getperms', 'user-getperms <name> .. get permissions of <name>', 'user-getperms dunker') aliasset('getperms', 'user-getperms') tests.add('user-add mtest7 mekker@test7').add('user-addperm mtest7 mekker').add('user-getperms mtest7' , 'MEKKER').add('delete mtest7')
def handle_perms(bot, ievent): """ no arguments - get permission of the user given the command. """ if ievent.rest: ievent.reply("use getperms to get the permissions of somebody else") ; return name = users.getname(ievent.userhost) if not name: ievent.reply("can't find username for %s" % ievent.userhost) ; return perms = users.getuserperms(name) if perms: ievent.reply("you have permissions: ", perms, dot=True) cmnds.add('user-perms', handle_perms, 'USER') examples.add('user-perms', 'get permissions', 'user-perms') aliasset('perms', 'user-perms') tests.add('user-perms', 'USER')
def handle_delperm(bot, ievent): """ <name> <perm> - delete permission of name. """ if len(ievent.args) != 2: ievent.missing('<name> <perm>') ; return name, perm = ievent.args perm = perm.upper() name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return result = users.deluserperm(name, perm) if result: ievent.reply('%s perm removed' % perm) else: ievent.reply("%s has no %s permission" % (name, perm)) ; return cmnds.add('user-delperm', handle_delperm, 'OPER') examples.add('user-delperms', 'delete permission', 'user-delperms dunker rss') tests.add('user-add mtest8 mekker@test8').add('user-addperm mtest8mekker').add('user-delperm mtest8 mekker', 'MEKKER').add('delete mtest8')
def handle_addstatus(bot, ievent): """ <name> <status> - add status to user data. """ if len(ievent.args) != 2: ievent.missing('<name> <status>') ; return name, status = ievent.args status = status.upper() name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return if users.gotstatus(name, status): ievent.reply('%s already has status %s' % (name, status)) ; return result = users.addstatus(name, status) if result: ievent.reply('%s status added' % status) else: ievent.reply('add failed') cmnds.add('user-addstatus', handle_addstatus, 'OPER') examples.add('user-addstatus', 'add status to user data', 'user-addstatus dunker #dunkbots') aliasset('setstatus', 'user-addstatus') aliasset('addstatus', 'user-addstatus') tests.add('user-add mtest9 mekker@test9').add('user-addstatus mtest9 mekker', 'MEKKER status added').add('delete mtest9')
def handle_getstatus(bot, ievent): """ <name> - get status of name. """ try: name = ievent.args[0] except IndexError: ievent.missing('<name>') ; return name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return status = users.getuserstatuses(name) if status: ievent.reply("status of %s: " % name, status, dot=True) else: ievent.reply('%s has no status set' % name) cmnds.add('user-getstatus', handle_getstatus, 'OPER') examples.add('user-getstatus', 'get status of <name>', 'user-getstatus dunker') aliasset('getstatus', 'user-getstatus') tests.add('user-add mtest10 mekker@test10').add('user-addstatus mtest10 mekker', 'MEKKER status added').add('user-getstatus mtest10', 'MEKKER').add('delete mtest10')
def handle_status(bot, ievent): """ no arguments - get status of user given the command. """ status = users.getstatuses(ievent.userhost) if status: ievent.reply("you have status: ", status, dot=True) else: ievent.reply('you have no status set') cmnds.add('user-status', handle_status, 'USER') examples.add('user-status', 'get status', 'user-status') aliasset('status', 'user-status') tests.add('user-status')
def handle_delstatus(bot, ievent): """ <name> <status> - delete status of name. """ if len(ievent.args) != 2: ievent.missing('<name> <status>') ; return name, status = ievent.args status = status.upper() name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return result = users.deluserstatus(name, status) if result: ievent.reply('%s status deleted' % status) else: ievent.reply("%s has no %s status" % (name, status)) ; return cmnds.add('user-delstatus', handle_delstatus, 'OPER') examples.add('user-delstatus', 'delete stauts from user data', 'user-delstatus dunker #dunkbots') aliasset('delstatus', 'user-delstatus') tests.add('user-add mtest11 mekker@test11').add('user-addstatus mtest11 mekker').add('user-delstatus mtest11 mekker', 'MEKKER status deleted').add('delete mtest11')
def handle_adduserhost(bot, ievent): """ <name> <userhost> - add to userhosts to user data. """ if len(ievent.args) != 2: ievent.missing('<name> <userhost>') ; return name, userhost = ievent.args name = name.lower() if name == 'owner' and not bot.ownercheck(ievent, 'can adduserhost to owner'): return if not users.exist(name): ievent.reply("can't find user %s" % name) ; return if users.gotuserhost(name, userhost): ievent.reply('%s already has userhost %s' % (name, userhost)) ; return result = users.adduserhost(name, userhost) if result: ievent.reply('userhost added') else: ievent.reply('add failed') cmnds.add('user-adduserhost', handle_adduserhost, 'OPER') examples.add('user-adduserhost', 'add userhost to user data', 'user-adduserhost dunker bart@%.a2000.nl') aliasset('adduserhost', 'user-adduserhost') aliasset('adduserhosts', 'user-adduserhost') tests.add('user-add mtest12 mekker@test12').add('user-adduserhost mtest12 mekker2@test122', 'userhost added').add('delete mtest12')
def handle_deluserhost(bot, ievent): """ <name> <userhost> - remove from userhosts of name. """ if len(ievent.args) != 2: ievent.missing('<name> <userhost>') ; return name, userhost = ievent.args name = name.lower() if name == 'owner' and not bot.ownercheck(ievent, 'can delete userhosts from owner'): return if not users.exist(name): ievent.reply("can't find user %s" % name) ; return result = users.deluserhost(name, userhost) if result: ievent.reply('userhost removed') else: ievent.reply("%s has no %s in userhost list" % (name, userhost)) ; return cmnds.add('user-deluserhost', handle_deluserhost, 'OPER') examples.add('user-deluserhost', 'delete from usershosts of <name> userhost <userhost>','user-deluserhost dunker bart1@bla.a2000.nl') aliasset('deluserhost', 'user-deluserhost') aliasset('deluserhosts', 'user-deluserhost') tests.add('user-add mtest32 mekker@test32').add('user-adduserhost mtest12 mekker2@test32').add('user-deluserhost mtest12 mekker2@test32', 'userhost removed').add('delete mtest32')
def handle_getuserhosts(bot, ievent): """ <name> - get userhosts of a user. """ try: who = ievent.args[0] except IndexError: ievent.missing('<name>') ; return who = who.lower() userhosts = users.getuserhosts(who) if userhosts: ievent.reply("userhosts of %s: " % who, userhosts, dot=True) else: ievent.reply("can't find user %s" % who) cmnds.add('user-getuserhosts', handle_getuserhosts, 'OPER') examples.add('user-getuserhosts', 'get userhosts of <name>', 'getuserhosts dunker') aliasset('getuserhosts', 'user-getuserhosts') tests.add('user-add mtest13 mekker@test13').add('user-adduserhost mtest13 mekker@test13').add('user-getuserhosts mtest13', 'mekker@test13').add('delete mtest13')
def handle_userhosts(bot, ievent): """ no arguments - get userhosts of user giving the command. """ userhosts = users.gethosts(ievent.userhost) if userhosts: ievent.reply("you have userhosts: ", userhosts, dot=True) cmnds.add('user-userhosts', handle_userhosts, 'USER') examples.add('user-userhosts', 'get userhosts', 'user-userhosts') aliasset('userhosts', 'user-userhosts') tests.add('user-userhosts')
def handle_getemail(bot, ievent): """ <name> - get email of name. """ try: name = ievent.args[0] except IndexError: ievent.missing('<name>') ; return name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return email = users.getuseremail(name) if email: ievent.reply(email) else: ievent.reply('no email set') cmnds.add('user-getemail', handle_getemail, 'USER') examples.add('user-getemail', 'get email from user <name>', 'user-getemail dunker') aliasset('getemail', 'user-getemail') tests.add('user-add mtest14 mekker@test14').add('user-setemail mtest14 mekker@test14').add('user-getemail mtest14', 'mekker@test14').add('delete mtest14')
def handle_setemail(bot, ievent): """ <name> <email> - set email of name. """ try: name, email = ievent.args except ValueError: ievent.missing('<name> <email>') ; return if not users.exist(name): ievent.reply("can't find user %s" % name) ; return users.setemail(name, email) ievent.reply('email set') cmnds.add('user-setemail', handle_setemail, 'OPER') examples.add('user-setemail', 'set email of user <name>', 'user-setemail dunker bart@gozerbot.org') aliasset('setemail', 'user-setemail') tests.add('user-add mtest15 mekker@test15').add('user-setemail mtest15 mekker@test15', 'email set').add('delete mtest15')
def handle_email(bot, ievent): """ no arguments - show email of user giving the command. """ if len(ievent.args) != 0: ievent.reply('use getemail to get the email address of an user, email shows your own mail address') return email = users.getemail(ievent.userhost) if email: ievent.reply(email) else: ievent.reply('no email set') cmnds.add('user-email', handle_email, 'USER') examples.add('user-email', 'get email', 'user-email') aliasset('email', 'user-email') tests.add('user-setemail mekker@mekker').add('user-email', 'mekker@mekker')
def handle_delemail(bot, ievent): """ user-delemail .. reset email of user giving the command. """ name = users.getname(ievent.userhost) if not name: ievent.reply("can't find user for %s" % ievent.userhost) ; return result = users.delallemail(name) if result: ievent.reply('email removed') else: ievent.reply('delete failed') cmnds.add('user-delemail', handle_delemail, 'OPER') examples.add('user-delemail', 'reset email', 'user-delemail') aliasset('delemail', 'user-delemail') tests.add('user-setemail mekker@email').add('user-delemail', 'email removed')
def handle_addpermit(bot, ievent): """ <name> <permit> - add permit to permit list of <name>. """ try: who, what = ievent.args except ValueError: ievent.missing("<name> <permit>") ; return if not users.exist(who): ievent.reply("can't find username of %s" % who) ; return name = users.getname(ievent.userhost) if users.gotpermit(name, (who, what)): ievent.reply('%s is already allowed to do %s' % (who, what)) ; return result = users.addpermit(name, who, what) if result: ievent.reply('permit added') else: ievent.reply('add failed') cmnds.add('user-addpermit', handle_addpermit, 'USER') examples.add('user-addpermit', 'permit nick access to <what> .. use setperms to add permissions', 'user-addpermit dunker todo') aliasdel('allow') tests.add('user-add mtest16 mekker@test16').add('user-addpermit mtest16 todo', 'permit added').add('user-delpermit mtest16 todo').add('delete mtest16')
def handle_permit(bot, ievent): """ no arguments - get permit list of user giving the command. """ if ievent.rest: ievent.reply("use the user-addpermit command to allow somebody something, use getname <nick> to get the username of somebody,this command shows what permits you have") return name = users.getname(ievent.userhost) if not name: ievent.reply("can't find user for %s" % ievent.userhost) ; return permits = users.getuserpermits(name) if permits: ievent.reply("you permit the following: ", permits, dot=True) else: ievent.reply("you don't have any permits") cmnds.add('user-permit', handle_permit, 'USER') examples.add('user-permit', 'show permit of user giving the command', 'user-permit') aliasset('permit', 'user-permit') tests.add('user-add mtest17 mekker@test17').add('user-addpermit mtest17 todo', 'permit added').add('user-delpermit mtest17 todo').add('delete mtest17')
def handle_userdelpermit(bot, ievent): """ <name> <permit> - remove (name, permit) from permit list. """ try: who, what = ievent.args except ValueError: ievent.missing("<name> <what>") ; return if not users.exist(who): ievent.reply("can't find registered name of %s" % who) ; return name = users.getname(ievent.userhost) if not users.gotpermit(name, (who, what)): ievent.reply('%s is already not allowed to do %s' % (who, what)) ; return result = users.deluserpermit(name, (who, what)) if result: ievent.reply('%s denied' % what) else: ievent.reply('delete failed') cmnds.add('user-delpermit', handle_userdelpermit, 'USER') examples.add('user-delpermit', 'rmeove permit', 'user-delpermit dunker todo') aliasdel('deny') tests.add('user-add mtest18 mekker@test17').add('user-addpermit mtest18 todo', 'permit added').add('user-delpermit mtest18 todo').add('delete mtest18')
def handle_check(bot, ievent): """ <nick> - get user data of <nick>. """ try: nick = ievent.args[0] except IndexError: ievent.missing('<nick>') ; return userhost = getwho(bot, nick) if not userhost: ievent.reply("can't find userhost of %s" % nick) ; return name = users.getname(userhost) if not name: ievent.reply("can't find user") ; return userhosts = users.getuserhosts(name) perms = users.getuserperms(name) email = users.getuseremail(name) permits = users.getuserpermits(name) status = users.getuserstatuses(name) ievent.reply('userrecord of %s = userhosts: %s perms: %s email: %s permits: %s status: %s' % (name, str(userhosts), str(perms), str(email), str(permits), str(status))) cmnds.add('user-check', handle_check, 'OPER') examples.add('user-check', 'check user data of <nick>', 'user-check dunker') aliasset('check', 'user-check') tests.add('user-add mtest19 mekker@test19').add('user-check mtest19', 'mekker@test19').add('delete mtest19')
def handle_show(bot, ievent): """ <name> - get data of <name>. """ try: name = ievent.args[0] except IndexError: ievent.missing('<name>') ; return name = name.lower() if not users.exist(name): ievent.reply("can't find user %s" % name) ; return userhosts = str(users.getuserhosts(name)) perms = str(users.getuserperms(name)) email = str(users.getuseremail(name)) permits = str(users.getuserpermits(name)) status = str(users.getuserstatuses(name)) ievent.reply('userrecord of %s = userhosts: %s perms: %s email: %s permits: %s status: %s' % (name, userhosts, perms, email, permits, status)) cmnds.add('user-show', handle_show, 'OPER') examples.add('user-show', 'user-show <name> .. show data of <name>', 'user-show dunker') tests.add('user-add mtest20 mekker@test20').add('user-show mtest20', 'mekker@test20').add("delete mtest20")
def handle_match(bot, ievent): """ <userhost> - get data of <userhost>. """ try: userhost = ievent.args[0] except IndexError: ievent.missing('<userhost>') ; return name = users.getname(userhost) if not name: ievent.reply("can't find user with userhost %s" % userhost) ; return userhosts = str(users.gethosts(userhost)) perms = str(users.getperms(userhost)) email = str(users.getemail(userhost)) permits = str(users.getpermits(userhost)) status = str(users.getstatuses(userhost)) rlog(10, 'users', "matched called") ievent.reply('userrecord of %s = userhosts: %s perms: %s email: %s permits: %s status: %s' % (name, userhosts, perms, email, permits, status)) cmnds.add('user-match', handle_match, ['USER', 'OPER']) examples.add('user-match', 'get user data from user matching <userhost>', 'user-match test@test') aliasset('match', 'user-match') tests.add('user-add mtest21 mekker@test21').add('user-match mekker@test21', 'mekker@test21').add("delete mtest21")
def handle_getuserstatus(bot, ievent): """ <status> - list users with status <status>. """ try: status = ievent.args[0].upper() except IndexError: ievent.missing('<status>') ; return result = users.getstatususers(status) if result: ievent.reply("users with %s status: " % status, result, dot=True) else: ievent.reply("no users with %s status found" % status) return cmnds.add('user-allstatus', handle_getuserstatus, 'OPER') examples.add('user-allstatus', 'user-allstatus <status> .. get all users with <status> status', 'user-allstatus #dunkbots') tests.add('user-allstatus')
def handle_getuserperm(bot, ievent): """ <perm> - list users with permission <perm>. """ try: perm = ievent.args[0].upper() except IndexError: ievent.missing('<perm>') ; return result = users.getpermusers(perm) if result: ievent.reply('users with %s permission: ' % perm, result, dot=True) else: ievent.reply("no users with %s permission found" % perm) return cmnds.add('user-allperm', handle_getuserperm, 'OPER') examples.add('user-allperm', 'get users with <perm> permission', 'user-allperm rss') tests.add('user-allperm OPER', 'owner')
def handle_usersearch(bot, ievent): """ <what> - search for user matching given userhost. """ try: what = ievent.args[0] except IndexError: ievent.missing('<what>') ; return result = users.usersearch(what) if result: res = ["(%s) %s" % u for u in result] ievent.reply('users matching %s: ' % what, res, dot=True) else: ievent.reply('no userhost matching %s found' % what) cmnds.add('user-search', handle_usersearch, 'OPER') examples.add('user-search', 'search users userhosts', 'user-search gozerbot') tests.add('user-search exe', 'exec')