def remove_user_twofactor(self, message, nick): """twofactor remove [nick]: remove [nick]'s twofactor authentication (requires the 'administer_twofactor' permission)""" self.reply(message, "working on that...") user_to_remove = User.get_from_nick(self, nick) if user_to_remove: user_to_remove.delete() self.direct_reply(message, "Successfully removed twofactor authentication for user '{}'".format(nick)) else: self.direct_reply(message, "I could not find user '{}', no action was taken".format(nick))
def show_user_permission(self, message, nick): """what can [nick] do: get permissions for a user""" self.reply(message, "working on that...") if 'i' == nick.lower(): nick = message.sender.nick user = User.get_from_nick(self, nick) if not user: self.reply(message, "I could not find user '{}'".format(nick)) else: self.reply(message, "User '{}' has permissions {}".format(user.nick, ', '.join(user.permissions)))
def give_user_permission(self, message, nick, permissions): """grant [nick] permission to [permission]: grant [nick] a permission (requires the 'grant_permissions' permission)""" self.reply(message, "working on that...") requested_permissions = permissions.split() try: requested_permissions.remove("to") except ValueError: pass if len(requested_permissions) == 0: self.reply(message, 'At least one permission must be specified') return user = User.get_from_nick(self, nick) if not user: self.reply(message, "The user has not setup two-factor authentication, please have them do so before modifying permissions") return user.grant_permissions(requested_permissions) user.save() self.direct_reply(message, "New permissions for '{}' are: {} ".format(nick, ', '.join(user.permissions)))