Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import hashlib
- import random
- import time
- import firebase_admin
- from firebase_admin import auth
- from firebase_admin import credentials
- from firebase_admin import db
- PASS_CHARS = '2345679ABCDEFGHKMNPQRSTUVWXYZabcdefghkmnopqrstuvwxyz'
- EMPRENDE_COURSES = {
- 'courses-31c2bfb6-d5f1-4a25-992d-a62f655f2868': True,
- 'courses-89eaf102-eb52-405f-b04b-0b0dd2fc4dbd': True
- }
- cred = credentials.Certificate('./ime-bedu-firebase-adminsdk.json')
- firebase_admin.initialize_app(cred, {
- 'databaseURL': '//db_url/'
- })
- def gen_password(len=8):
- return ''.join(random.choice(PASS_CHARS) for _ in range(len))
- def create_user(user_data):
- user_pass = gen_password()
- user = auth.create_user(
- email=user_data['email'], password=user_pass, disabled=False)
- return (user, user_pass)
- def delete_user(uid):
- auth.delete_user(uid)
- def generate_profile(firbase_user):
- user_ref = db.reference('profiles/{}/courses/'.format(firbase_user.uid))
- user_ref.set(EMPRENDE_COURSES)
- if __name__ == '__main__':
- import sys
- _hash = hashlib.sha256()
- _hash.update(str(time.time()).encode('utf-8'))
- output_file_name = 'output-{}.csv'.format(_hash.hexdigest()[:10])
- output_file = open(output_file_name, 'w+')
- headers = ['email', 'password', 'status']
- csv_writer = csv.DictWriter(output_file, fieldnames=headers)
- csv_writer.writeheader()
- for file in sys.argv[1:]:
- with open(file) as csv_file:
- reader = csv.DictReader(csv_file)
- for row in reader:
- try:
- user, password = create_user(row)
- except (auth.AuthError, ValueError) as e:
- csv_writer.writerow(
- dict(zip(headers, (user.email, 'n/a', e))))
- continue
- try:
- generate_profile(user)
- csv_writer.writerow(
- dict(zip(headers, (user.email, password, 'ok'))))
- except Exception as e:
- csv_writer.writerow(
- dict(zip(headers, (user.email, 'n/a', e))))
- output_file.close()
Add Comment
Please, Sign In to add comment