Guest User

Untitled

a guest
Feb 14th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. import csv
  2. import hashlib
  3. import random
  4. import time
  5.  
  6. import firebase_admin
  7. from firebase_admin import auth
  8. from firebase_admin import credentials
  9. from firebase_admin import db
  10.  
  11.  
  12. PASS_CHARS = '2345679ABCDEFGHKMNPQRSTUVWXYZabcdefghkmnopqrstuvwxyz'
  13. EMPRENDE_COURSES = {
  14. 'courses-31c2bfb6-d5f1-4a25-992d-a62f655f2868': True,
  15. 'courses-89eaf102-eb52-405f-b04b-0b0dd2fc4dbd': True
  16. }
  17.  
  18. cred = credentials.Certificate('./ime-bedu-firebase-adminsdk.json')
  19. firebase_admin.initialize_app(cred, {
  20. 'databaseURL': '//db_url/'
  21. })
  22.  
  23.  
  24. def gen_password(len=8):
  25. return ''.join(random.choice(PASS_CHARS) for _ in range(len))
  26.  
  27.  
  28. def create_user(user_data):
  29. user_pass = gen_password()
  30. user = auth.create_user(
  31. email=user_data['email'], password=user_pass, disabled=False)
  32. return (user, user_pass)
  33.  
  34.  
  35. def delete_user(uid):
  36. auth.delete_user(uid)
  37.  
  38.  
  39. def generate_profile(firbase_user):
  40. user_ref = db.reference('profiles/{}/courses/'.format(firbase_user.uid))
  41. user_ref.set(EMPRENDE_COURSES)
  42.  
  43.  
  44. if __name__ == '__main__':
  45. import sys
  46.  
  47. _hash = hashlib.sha256()
  48. _hash.update(str(time.time()).encode('utf-8'))
  49. output_file_name = 'output-{}.csv'.format(_hash.hexdigest()[:10])
  50. output_file = open(output_file_name, 'w+')
  51. headers = ['email', 'password', 'status']
  52. csv_writer = csv.DictWriter(output_file, fieldnames=headers)
  53. csv_writer.writeheader()
  54.  
  55. for file in sys.argv[1:]:
  56. with open(file) as csv_file:
  57. reader = csv.DictReader(csv_file)
  58. for row in reader:
  59. try:
  60. user, password = create_user(row)
  61. except (auth.AuthError, ValueError) as e:
  62. csv_writer.writerow(
  63. dict(zip(headers, (user.email, 'n/a', e))))
  64. continue
  65. try:
  66. generate_profile(user)
  67. csv_writer.writerow(
  68. dict(zip(headers, (user.email, password, 'ok'))))
  69. except Exception as e:
  70. csv_writer.writerow(
  71. dict(zip(headers, (user.email, 'n/a', e))))
  72.  
  73. output_file.close()
Add Comment
Please, Sign In to add comment