def generate_otp_secret(self): self.otp_secret = utils.generate_otp_secret()
def _upgrade_org_users(org_id, org_path): users_db = get_collection('users') users_path = os.path.join(org_path, 'users') for user_conf_name in os.listdir(users_path): user_id = os.path.splitext(user_conf_name)[0] user_conf_path = os.path.join(users_path, user_conf_name) user_cert_path = os.path.join(org_path, 'certs', user_id + '.crt') user_key_path = os.path.join(org_path, 'keys', user_id + '.key') if user_id == 'ca': spec = { 'org_id': utils.ObjectId(org_id), 'type': 'ca', } else: spec = { '_id': utils.ObjectId(user_id), } update_doc = { 'private_key': None, 'otp_secret': None, 'name': None, 'certificate': None, 'resource_id': None, 'org_id': utils.ObjectId(org_id), 'disabled': False, 'type': CERT_CLIENT, 'email': None, } with open(user_conf_path, 'r') as conf_file: for line in conf_file.readlines(): line = line.strip() name, value = line.split('=', 1) if name in ( 'name', 'email', 'otp_secret', ): update_doc[name] = value elif name == 'type': if value == 'client': update_doc['type'] = CERT_CLIENT elif value == 'server': update_doc['type'] = CERT_SERVER elif value == 'client_pool': update_doc['type'] = CERT_CLIENT_POOL elif value == 'server_pool': update_doc['type'] = CERT_SERVER_POOL elif value == 'ca': update_doc['type'] = CERT_CA elif name == 'disabled' and value == 'true': user_disabled = True if not update_doc['otp_secret']: update_doc['otp_secret'] = utils.generate_otp_secret() with open(user_cert_path, 'r') as vert_file: update_doc['certificate'] = vert_file.read().rstrip('\n') with open(user_key_path, 'r') as key_file: update_doc['private_key'] = key_file.read().rstrip('\n') users_db.update(spec, update_doc, upsert=True)
def _upgrade_org_users(org_id, org_path): users_db = get_collection('users') users_path = os.path.join(org_path, 'users') for user_conf_name in os.listdir(users_path): user_id = os.path.splitext(user_conf_name)[0] user_conf_path = os.path.join(users_path, user_conf_name) user_cert_path = os.path.join(org_path, 'certs', user_id + '.crt') user_key_path = os.path.join(org_path, 'keys', user_id + '.key') if user_id == 'ca': spec = { 'org_id': bson.ObjectId(org_id), 'type': 'ca', } else: spec = { '_id': bson.ObjectId(user_id), } update_doc = { 'private_key': None, 'otp_secret': None, 'name': None, 'certificate': None, 'resource_id': None, 'org_id': bson.ObjectId(org_id), 'disabled': False, 'type': CERT_CLIENT, 'email': None, } with open(user_conf_path, 'r') as conf_file: for line in conf_file.readlines(): line = line.strip() name, value = line.split('=', 1) if name in ( 'name', 'email', 'otp_secret', ): update_doc[name] = value elif name == 'type': if value == 'client': update_doc['type'] = CERT_CLIENT elif value == 'server': update_doc['type'] = CERT_SERVER elif value == 'client_pool': update_doc['type'] = CERT_CLIENT_POOL elif value == 'server_pool': update_doc['type'] = CERT_SERVER_POOL elif value == 'ca': update_doc['type'] = CERT_CA elif name == 'disabled' and value == 'true': user_disabled = True if not update_doc['otp_secret']: update_doc['otp_secret'] = utils.generate_otp_secret() with open(user_cert_path, 'r') as vert_file: update_doc['certificate'] = vert_file.read().rstrip('\n') with open(user_key_path, 'r') as key_file: update_doc['private_key'] = key_file.read().rstrip('\n') users_db.update(spec, update_doc, upsert=True)