Пример #1
0
 def generate_otp_secret(self):
     self.otp_secret = utils.generate_otp_secret()
Пример #2
0
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)
Пример #3
0
 def generate_otp_secret(self):
     self.otp_secret = utils.generate_otp_secret()
Пример #4
0
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)