def talk_to_me(): if request.method == 'GET': return render_template('talk_to_me.html') else: msg = '' m_user = request.form.get('m_user') m_secret = request.form.get('m_secret') guy = request.form.get('guy') message = request.form.get('message') m_list = request.form.get('m_list') user = request.form.get('user') secret = request.form.get('secret') new_password = request.form.get('new_password') listing = request.form.get('list') delete = request.form.get('deletion') print(m_user, m_secret, guy, message, m_list) print(user, secret, new_password, listing, delete) if delete == 'yes': u.delete_user(user, secret) if listing == 'yes': u.list_users() if m_list == 'yes': m.list_messages(m_user, m_secret) if message is not None: m.send_message(m_user, m_secret, guy, message) if user is not None: u.create_user(user, secret) if new_password is not None: u.edit_user(user, secret, new_password) return render_template('talk_to_me.html', msg=msg)
def list_users(context,galaxy,name,long_listing): """ List users in Galaxy instance. Prints details of user accounts in GALAXY instance. """ # Get a Galaxy instance gi = context.galaxy_instance(galaxy) if gi is None: logger.critical("Failed to connect to Galaxy instance") return 1 # List users users.list_users(gi,name=name,long_listing_format=long_listing)
def list_users(): """ Lists users registered with pssst :return: Page listing users """ user = users.list_users(db) dic = {"loginFailed": "False", "users": user} dic.update(determine_user()) return template("listUsers.tpl", dic)
def initUI(self): self.lbl = QtWidgets.QLabel("User", self) list_user = users.list_users() # List of users (db) self.combo = QtWidgets.QComboBox(self) self.combo.addItems(list_user) self.combo.move(50, 50) self.lbl.move(50, 150) # Launch BBoard self.btn1 = QtWidgets.QPushButton("Click me", self) self.btn1.setGeometry(QtCore.QRect(0, 0, 100, 30)) self.btn1.clicked.connect( lambda: self.onClick(self.combo.currentText())) self.combo.activated[str].connect(self.onActivated) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Select user') self.show()
def initUI(self): self.lbl = QtWidgets.QLabel("User", self) list_user = users.list_users() # List of users (db) self.combo = QtWidgets.QComboBox(self) self.combo.addItems(list_user) self.combo.move(50, 50) self.lbl.move(50, 150) # Launch BBoard self.btn1 = QtWidgets.QPushButton("Click me", self) self.btn1.setGeometry(QtCore.QRect(0, 0, 100, 30)) self.btn1.clicked.connect(lambda: self.onClick(self.combo.currentText())) self.combo.activated[str].connect(self.onActivated) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Select user') self.show()
print("Time to load all user data (except reviews): %d s" % (time() - stime)) # build user_id => review dict for quick lookup reviews_data_path = "/reviews.json" stime = time() reviews = reviews.Reviews(path_to_Dataset + reviews_data_path) print("Time to build fast look up user-reviews dict: %d s" % (time() - stime)) #collected_reviews = dict() collected_reviews = list() restaurant_dict = dict() # for each user ... count = 0 for user in users.list_users(): # load all of user's restaurant reviews count = count + 1 stime = time() uid = user.user_id() user_reviews = reviews.get_reviews_for_user(uid) if user_reviews == None: continue # key is now a (business_id, rating) tuple for key, value in user_reviews.items(): business_id = key[0] rating = key[1] #collected_reviews[uid + ":" + business_id] = value #collected_reviews[count] = value collected_reviews.append(value) if business_id not in restaurant_dict:
def user_list(): return users.list_users()
def main(): parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(help='commands', dest='command') # Accounts command account_parser = subparsers.add_parser('account', help='Runs account examples') account_parser.add_argument('--get', '-g', default=False, action='store_true', help='Get account resource') account_parser.add_argument('--update', '-u', default=False, action='store_true', help='Upate account resource') account_parser.add_argument('--billing-status', '-s', default=False, action='store_true', help='Get account billing status') account_parser.add_argument('--id', '-i', required=False, type=str, action='store', help='Resource id') account_parser.add_argument('--company-name', '-n', required=False, type=str, action='store', help='Company name') # Users command users_parser = subparsers.add_parser('user', help='Runs user examples') users_parser.add_argument('--list', '-l', default=False, action='store_true', help='Lists users associated with your account') users_parser.add_argument('--get', '-g', default=False, action='store_true', help='Get user resource') users_parser.add_argument('--id', '-i', required=False, type=str, action='store', help='Resource id') # Mesages command messages_parser = subparsers.add_parser('message', help='Runs messages example') messages_parser.add_argument('--list', '-l', default=False, action='store_true', help='Lists message resources') messages_parser.add_argument('--send', '-s', default=False, action='store_true', help='Send message') messages_parser.add_argument('--get', '-g', default=False, action='store_true', help='Get message resource') messages_parser.add_argument('--id', '-i', required=False, type=str, action='store', help='Resource id') messages_parser.add_argument('--body', '-b', required=False, type=str, action='store', help='Message body') messages_parser.add_argument('--media-url', '-u', required=False, type=str, action='store', help='Media URL for MMS') messages_parser.add_argument('--from-number', '-f', required=False, type=str, action='store', help='From phone number (+12123456789)') messages_parser.add_argument('--to-number', '-t', required=False, type=str, action='store', help='To phone number (+12128765432)') # Number command number_parser = subparsers.add_parser('number', help='Runs number examples') number_parser.add_argument('--list-available', '-a', default=False, action='store_true', help='Lists available numbers') number_parser.add_argument('--list-associated', '-l', default=False, action='store_true', help='Lists associated numbers') number_parser.add_argument('--buy', '-b', default=False, action='store_true', help='Buy number') number_parser.add_argument('--update', '-u', default=False, action='store_true', help='Update number') number_parser.add_argument('--id', '-i', required=False, type=str, action='store', help='Resource id') number_parser.add_argument('--phone-number-name', '-n', required=False, type=str, action='store', help='Phone number name') number_parser.add_argument('--phone-number', '-p', required=False, type=str, action='store', help='Phone number (+12124567890)') args = parser.parse_args() if args.command == 'message': if args.send: # https://imgs.xkcd.com/comics/lisp_cycles.png message = send_message( to_number=args.to_number, from_number=args.from_number, body=args.body, media_urls=[args.media_url] if args.media_url else None) print(message.id, message.from_number, message.to_number) if args.get: message = get_message(args.id) print(message.id, message.from_number, message.to_number, message.body) if args.list: for message in list_messages(): print(message.id, message.to_number, message.from_number, message.body) elif args.command == 'number': if args.list_available: for number in list_available_numbers(): print(number.name, number.phone_number_type, number.phone_number) if args.list_associated: for number in list_associated_numbers(): print(number.id, number.name, number.phone_number_type, number.phone_number) if args.buy: area_code = args.phone_number[2:5] if args.phone_number.startswith('+') \ else args.phone_number[1:4] number = buy_number(name=args.phone_number_name, phone_number=args.phone_number, area_code=area_code, phone_number_type='local') print(number.id, number.name, number.phone_number) if args.update: number = update_number_name(args.id, name=args.phone_number_name) print(number.id, number.name, number.phone_number) elif args.command == 'user': if args.list: for user in list_users(): print(user.id, user.first_name, user.last_name) if args.get: user = get_user(args.id) print(user.id, user.first_name, user.last_name) elif args.command == 'account': if args.billing_status: status = billing_status() print(status) if args.get: account = get_account(args.id) print(account.id, account.company_name) if args.update: account = update_account(args.id, company_name=args.company_name) print(account.id, account.company_name)
stime = time() users = users.Users(path_to_Dataset + user_data_path, n_users=n_users) print ("Time to load all user data (except reviews): %d s" % (time() - stime)) # build user_id => review dict for quick lookup reviews_data_path = "/reviews.json" stime = time() reviews = reviews.Reviews(path_to_Dataset + reviews_data_path) print ("Time to build fast look up user-reviews dict: %d s" % (time() - stime)) #collected_reviews = dict() collected_reviews = list() restaurant_dict = dict() # for each user ... count = 0 for user in users.list_users(): # load all of user's restaurant reviews count = count + 1 stime = time() uid = user.user_id() user_reviews = reviews.get_reviews_for_user(uid) if user_reviews == None: continue # key is now a (business_id, rating) tuple for key, value in user_reviews.items(): business_id = key[0] rating = key[1] #collected_reviews[uid + ":" + business_id] = value #collected_reviews[count] = value collected_reviews.append(value) if business_id not in restaurant_dict:
async def _users(self): """ Command to manage users. """ if not await self._ensure_admin(): return text = None if self.args: if self.args[0] == "list": users = list_users(self.config) text = f"The following usernames were found: {', '.join([user['username'] for user in users])}" elif self.args[0] == "help": text = help_strings.HELP_USERS elif self.args[0] == "invite": if len(self.args) == 1 or self.args[1] == "help": text = help_strings.HELP_USERS_INVITE else: emails = self.args[1:] emails = {email.strip() for email in emails} texts = [] for email in emails: try: validated = validate_email(email) email = validated.email logger.debug("users invite - Email %s is valid", email) except EmailNotValidError as ex: texts.append( f"The email {email} looks invalid: {ex}") continue try: existing_user = get_user_by_attr( self.config, "email", email) except Exception as ex: texts.append( f"Error looking up existing users by email {email}: {ex}" ) continue if existing_user: texts.append( f"Found an existing user by email {email} - ignoring" ) continue logger.debug( "users invite - No existing user for %s found", email) username = None username_candidate = email.split('@')[0] username_candidate = username_candidate.lower() username_candidate = re.sub(r'[^a-z0-9._\-]', '', username_candidate) candidate = username_candidate counter = 0 while not username: logger.debug("users invite - candidate: %s", candidate) # noinspection PyBroadException try: existing_user = get_user_by_attr( self.config, "username", candidate) except Exception: existing_user = True if existing_user: logger.debug( "users invite - Found existing user with candidate %s", existing_user) counter += 1 candidate = f"{username_candidate}{counter}" continue username = candidate logger.debug("Username is %s", username) user_id = create_user(self.config, username, email) logger.debug("Created user: %s", user_id) if not user_id: texts.append( f"Failed to create user for email {email}") logger.warning( "users invite - Failed to create user for email %s", email) continue send_password_reset(self.config, user_id) logger.info( "users invite - Successfully invited user with email %s", email) texts.append(f"Successfully invited {email}!") text = '\n'.join(texts) else: users = list_users(self.config) text = f"The following usernames were found: {', '.join([user['username'] for user in users])}" if not text: text = help_strings.HELP_USERS await send_text_to_room(self.client, self.room.room_id, text)
def manage_users(args=None): """ Implements the 'manage_users' utility """ deprecation_warning() if args is None: args = sys.argv[1:] p = base_parser(usage=\ "\n\t%prog list GALAXY_URL [options]" "\n\t%prog create GALAXY_URL EMAIL [PUBLIC_NAME]" "\n\t%prog create GALAXY_URL -t TEMPLATE START [END]" "\n\t%prog create GALAXY_URL -b FILE [options]", description="Manage and create users in a Galaxy " "instance") commands = ['list','create'] # Get compulsory arguments if len(args) == 1: if args[0] == '-h' or args[0] == '--help': p.print_usage() elif args[0] == '--version': p.print_version() sys.exit(0) if len(args) < 2: p.error("need to supply a command and a Galaxy URL/alias") command = args[0] galaxy_url = args[1] # Setup additional command line options if command not in commands: p.error("unrecognised command: '%s'" % command) elif command == 'list': p.set_usage("%prog list GALAXY_URL [options]") p.add_option('--name',action='store',dest='name',default=None, help="specific emails/user name(s) to list") p.add_option('-l',action='store_true', dest='long_listing_format',default=False, help="use a long listing format (include ids, " "disk usage and admin status)") elif command == 'create': p.set_usage("\n\t%prog create GALAXY_URL EMAIL [PUBLIC_NAME]" "\n\t%prog create GALAXY_URL -t TEMPLATE START [END]" "\n\t%prog create GALAXY_URL -b FILE [options]") p.add_option('-p','--password',action='store',dest='passwd', default=None, help="specify password for new user account " "(otherwise program will prompt for password)") p.add_option('-c','--check',action='store_true',dest='check', default=False, help="check user details but don't try to create " "the new account") p.add_option('-t','--template',action='store_true', dest='template',default=False, help="indicates that EMAIL is actually a " "'template' email address which includes a '#' " "symbol as a placeholder where an integer index " "should be substituted to make multiple accounts " "(e.g. 'student#@galaxy.ac.uk').") p.add_option('-b','--batch',action='store_true',dest='batch', default=False, help="create multiple users reading details from " "TSV file (columns should be: " "email,password[,public_name])") p.add_option('-m','--message',action='store', dest='message_template',default=None, help="populate and output Mako template " "MESSAGE_TEMPLATE") # Process remaining arguments on command line if args[1] in ('-h','--help','--version'): args = args[1:] else: args = args[2:] options,args = p.parse_args(args) handle_debug(debug=options.debug) handle_suppress_warnings(suppress_warnings=options.suppress_warnings) handle_ssl_warnings(verify=(not options.no_verify)) # Handle password if required email,password = handle_credentials(options.username, options.galaxy_password, prompt="Password for %s: " % galaxy_url) # Get a Galaxy instance gi = get_galaxy_instance(galaxy_url,api_key=options.api_key, email=email,password=password, verify_ssl=(not options.no_verify)) if gi is None: logger.critical("Failed to connect to Galaxy instance") sys.exit(1) # Execute command if command == 'list': users.list_users(gi,name=options.name,long_listing_format= options.long_listing_format) elif command == 'create': # Check message template is .mako file if options.message_template: if not os.path.isfile(options.message_template): logger.critical("Message template '%s' not found" % options.message_template) sys.exit(1) elif not options.message_template.endswith(".mako"): logger.critical("Message template '%s' is not a .mako file" % options.message_template) sys.exit(1) if options.template: # Get the template and range of indices template = args[0] start = int(args[1]) try: end = int(args[2]) except IndexError: end = start # Create users retval = users.create_users_from_template(gi,template, start,end,options.passwd, only_check=options.check) elif options.batch: # Get the file with the user data tsvfile = args[0] # Create users retval = users.create_batch_of_users(gi,tsvfile, only_check=options.check, mako_template=options.message_template) else: # Collect email and (optionally) public name email = args[0] try: name = args[1] if not users.check_username_format(name): logger.critical("Invalid name: must contain only " "lower-case letters, numbers and " "'-'") sys.exit(1) except IndexError: # No public name supplied, make from email address name = users.get_username_from_login(email) # Create user print "Email : %s" % email print "Name : %s" % name retval = users.create_user(gi,email,name,options.passwd, only_check=options.check, mako_template=options.message_template)