def get(self, user_name): if not self.current_user : self.redirect('/admin/login') return if self.get_current_role(self.current_user) != 'admin': self.redirect('/') return try: validator = formencode.All(validators.PlainText(not_empty=True),ValidUser()) login = validator.to_python(user_name) except: self.set_secure_cookie("message", "User does not exist.") self.redirect("/admin/users/manage") return pg = PasswordGenerator(15) passwd = pg.generate() try: self.rpc = bjsonrpc.connect(host=config.ipc.rpcip, port=int(config.ipc.port)) self.rpc.call.changeUserPassword(config.ipc.apikey, base64.b64encode(user_name.encode('utf-8')), base64.b64encode(passwd.encode('utf-8'))) self.rpc.close() self.set_secure_cookie("message", "Password for user %s successfully changed. New password is %s" % (user_id, passwd)) self.redirect("/admin/users/manage") return except Exception,e: self.set_secure_cookie("message", "Could not change password for user %s. Contact system administrator." % (user_id)) self.redirect("/admin/users/manage") return
break if action == 'Delete': try: self.rpc = bjsonrpc.connect(host=config.ipc.rpcip, port=int(config.ipc.port)) self.rpc.call.removeUser(config.ipc.apikey, base64.b64encode(user_name)) self.rpc.close() self.set_secure_cookie("message", "User %s successfully removed." % user_name) self.redirect('/admin/users/manage') return except Exception,e: self.set_secure_cookie("message", "Error deleting user: %s. Contact system administrator." %(e)) self.redirect('/admin/users/manage') return elif action == 'Reset password': pg = PasswordGenerator(15) passwd = pg.generate() try: self.rpc = bjsonrpc.connect(host=config.ipc.rpcip, port=int(config.ipc.port)) self.rpc.call.changeUserPassword(config.ipc.apikey, base64.b64encode(user_name), base64.b64encode(passwd)) self.rpc.close() self.set_secure_cookie("message", "Password for user %s changed. New password is %s" % (user_name, passwd)) self.redirect("/admin/users/manage") return except Exception,e: self.set_secure_cookie("message", "Could not change password for user %s, password %s: %s. Contact system administrator." % (user_name, '(not shown)' , e)) self.redirect("/admin/users/manage") return else: self.set_secure_cookie("message", "Something went wrong, action: %s, user: %s." %(action, user_name))