def got_keys_cb(keys): logging.debug("indx_pg2 create_box, got_keys_cb") # assign ownership now to db_owner rw_pw_encrypted = rsa_encrypt(keys['public'], rw_user_pass) ro_pw_encrypted = rsa_encrypt(keys['public'], ro_user_pass) def indx_db(conn_indx): logging.debug("indx_pg2 create_box, indx_db") d_q = conn_indx.runOperation("INSERT INTO tbl_keychain (user_id, db_name, db_user, db_user_type, db_password_encrypted) VALUES ((SELECT id_user FROM tbl_users WHERE username = %s), %s, %s, %s, %s), ((SELECT id_user FROM tbl_users WHERE username = %s), %s, %s, %s, %s)", [db_owner, db_name, rw_user, 'rw', rw_pw_encrypted, db_owner, db_name, ro_user, 'ro', ro_pw_encrypted]) def inserted(empty): logging.debug("indx_pg2 create_box, inserted, next ACL") acl_q = conn_indx.runOperation("INSERT INTO tbl_acl (database_name, user_id, acl_read, acl_write, acl_owner, acl_control) VALUES (%s, (SELECT id_user FROM tbl_users WHERE username = %s), %s, %s, %s, %s)", [box_name, db_owner, True, True, True, True]) def inserted_acl(empty): logging.debug("indx_pg2 create_box, inserted_acl - create_box finished") return_d.callback(True) acl_q.addCallbacks(inserted_acl, return_d.errback) d_q.addCallbacks(inserted, return_d.errback) # connect to INDX db to add new DB accounts to keychain self.connect_indx_db().addCallbacks(indx_db, return_d.errback)
def process_row(empty): if len(rows) < 1: return_d.callback(True) return row = rows.pop(0) db_user, db_user_type, db_password_encrypted = row if db_user_type not in user_types: process_row(None) return # next loop db_password_clear = rsa_decrypt( private_key, db_password_encrypted) db_password_new_encrypted = rsa_encrypt( public2_key, db_password_clear) ins_q = "INSERT INTO tbl_keychain (user_id, db_name, db_user, db_user_type, db_password_encrypted) VALUES ((SELECT id_user FROM tbl_users WHERE username = %s), %s, %s, %s, %s)" ins_p = [ to_user, db_name, db_user, db_user_type, db_password_new_encrypted ] conn.runOperation(ins_q, ins_p).addCallbacks( process_row, return_d.errback)
def process_row(empty): if len(rows) < 1: return_d.callback(True) return row = rows.pop(0) db_user, db_user_type, db_password_encrypted = row if db_user_type not in user_types: process_row(None) return # next loop db_password_clear = rsa_decrypt(private_key, db_password_encrypted) db_password_new_encrypted = rsa_encrypt(public2_key, db_password_clear) ins_q = "INSERT INTO tbl_keychain (user_id, db_name, db_user, db_user_type, db_password_encrypted) VALUES ((SELECT id_user FROM tbl_users WHERE username = %s), %s, %s, %s, %s)" ins_p = [to_user, db_name, db_user, db_user_type, db_password_new_encrypted] conn.runOperation(ins_q, ins_p).addCallbacks(process_row, return_d.errback)