Exemple #1
0
                        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)
Exemple #2
0
                        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)
Exemple #3
0
                        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)
Exemple #4
0
                        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)