def populate_db(): for i in range(15): target = UserProfile.create( username=f'test{i}', password=passw, name=f'test#{i}', email=f'fort{i}@gma.com', confirmation_sent_at=datetime.datetime.now(), last_sign_in_at=1) print(f"Created user {target.username}") target.follow(yab) print("Following user") #crate some followers for j in range(i): if j != i: user = UserProfile.get(username=f'test{j}') print(f'{user.username} -> {target.username}') user.follow(target, True) #craete some images via API print("Uploading some pics") for j in range(PHOTOS): print(f'Image {j} of {PHOTOS}') """
def new_user(username, password, email, is_remote = False, confirmed=False, is_private = False, is_admin=False, public_key=None, name=None, description = "", ap_id = None, public_inbox=None): """ Returns False or UserProfile """ # Verify username logging.debug(f"Starting to create user {username}") if not valid_username(username): logging.error(f"@{username} is a not valid username") return False # Hash the password passw = bcrypt.hashpw(password, salt_code) # First we create the actual user user = User.create( username = username, password = passw, email = email, confirmed = confirmed, is_admin = is_admin, is_private = is_private, ) logging.debug(f"Created user {user.username}") if name == None: name = username # Now we create the profile try: profile = UserProfile.create( id = user.id, disabled = True, is_remote = is_remote, user = user, name = name, public_key = public_key, ap_id = ap_id, description = description, public_inbox = public_inbox ) logging.info(f"New Profile created: {profile}") return profile except Exception as e: logging.error(e) user.delete_instance() return False
def new_user(username, password, email, is_remote=False, confirmed=False, is_private=False, is_admin=False, public_key=None, name=None, description="", ap_id=None): """ Returns False or UserProfile """ # Verify username if not valid_username(username): return False # Hash the password passw = bcrypt.hashpw(password.encode('utf-8'), salt_code.encode('utf-8')) # First we create the actual user user = User.create(username=username, password=passw, email=email, confirmed=confirmed, is_admin=is_admin, is_private=is_private) if name == None: name = username # Now we create the profile profile = UserProfile.create(id=user.id, disabled=True, is_remote=is_remote, user=user, name=name, public_key=public_key, ap_id=ap_id, description=description) # Send the confirmation email if not user.confirmed: send_activation_email(profile) return profile
def populate_for_travis(): for i in range(15): target = UserProfile.create( username=f'test{i}', password=passw, name=f'test#{i}', email=f'fort{i}@gma.com', confirmation_sent_at=datetime.datetime.now(), last_sign_in_at=1) target.follow(yab) #crate some followers for j in range(i): if j != i: user = UserProfile.get(username=f'test{j}') user.follow(target, True)
def get_or_create_remote_user(self): """ Returns an instance of User after looking for it using it's ap_id """ user = UserProfile.get_or_none(ap_id=self.uri) if not user: user = self.dereference() hostname = urlparse(user.id).hostname username = "******".format(user.preferredUsername, hostname) user = UserProfile.create( username=user.preferredUsername, name=user.name, ap_id=user.id, remote=True, password="******", description=user.summary, private=user.manuallyApprovesFollowers, public_key=user.publicKey['publicKeyPem']) #print(user) return user
def populate_db(): for i in range(15): target = UserProfile.create( username=f'test{i}', password=passw, name=f'test#{i}', email=f'fort{i}@gma.com', confirmation_sent_at=datetime.datetime.now(), last_sign_in_at=1) print(f"Created user {target.username}") target.follow(yab) print("Following user") #crate some followers for j in range(i): if j != i: user = UserProfile.get(username=f'test{j}') print(f'{user.username} -> {target.username}') user.follow(target, True) #craete some images via API print("Uploading some pics") for j in range(PHOTOS): print(f'Image {j} of {PHOTOS}') client = testing.TestClient(app) data = {'username': target.username, 'password': '******'} header = { 'Authorization': "Basic " + b64encode(f"{data['username']}:{data['password']}". encode()).decode('utf-8') } token = client.simulate_get("/api/v1/auth", json=data, headers=header) token = token.json['token'] auth = {'Authorization': token} images = ['fine.jpg', 'wildunix.jpeg', 'gatos.jpeg'] image = random.choice(images) ids = [] data, headers = create_multipart( open(f'tests/assets/{image}', 'rb').read(), fieldname="file", filename='image', content_type=f'image/{image.split(".")[1]}') auth.update(headers) response = client.simulate_post("/api/v1/media", body=data, headers=auth) ids.append(response.json['id']) status = { 'visibility': True, 'status': f'My photo #{j} by @{target.username}', 'sensitive': random.choice([True, False]), 'media_ids': ','.join(ids) } response = client.simulate_post("/api/v1/statuses", params=status, headers=auth)
from auth import Argon2 import datetime username = input("Enter username: "******"Enter a name to display: ") admin = input("Should the user be an admin? [y/n]") while (admin.lower() != 'y' and admin.lower() != 'n'): admin = input("Should the user be an admin? [y/n]") password = input("Type a password: "******"Repeat the password: "******"Type a password: "******"Repeat the password: "******"Enter a email: ") passw = Argon2().generate_password_hash(password) UserProfile.create(username=username, password=passw, name=name, email=email, confirmation_sent_at=datetime.datetime.now(), last_sign_in_at=1, admin=admin) print("User created successfuly")