Module: PgRls::ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements

Defined in:
lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb

Overview

This module contains the logic to create rls policies tables and functions

Instance Method Summary collapse

Instance Method Details

#convert_to_rls_table(table_name) ⇒ Object



25
26
27
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 25

def convert_to_rls_table(table_name)
  create_rls_table_setup(table_name) if check_rls_user_privileges!(PgRls.username, PgRls.schema)
end

#convert_to_rls_tenant_table(table_name) ⇒ Object



15
16
17
18
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 15

def convert_to_rls_tenant_table(table_name)
  create_rls_initialize_setup
  create_rls_tenant_table_setup(table_name)
end

#create_rls_index(table_name, columns, **options) ⇒ Object



48
49
50
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 48

def create_rls_index(table_name, columns, **options)
  add_index(table_name, rls_index_columns(columns), **options)
end

#create_rls_table(table_name) ⇒ Object



20
21
22
23
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 20

def create_rls_table(table_name, ...)
  create_table(table_name, ...)
  create_rls_table_setup(table_name) if check_rls_user_privileges!(PgRls.username, PgRls.schema)
end

#create_rls_tenant_table(table_name) ⇒ Object



9
10
11
12
13
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 9

def create_rls_tenant_table(table_name, ...)
  create_rls_initialize_setup
  create_table(table_name, ...)
  create_rls_tenant_table_setup(table_name)
end

#drop_rls_index(table_name, columns, **options) ⇒ Object



52
53
54
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 52

def drop_rls_index(table_name, columns, **options)
  remove_index(table_name, rls_index_columns(columns), **options)
end

#drop_rls_table(table_name) ⇒ Object



39
40
41
42
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 39

def drop_rls_table(table_name, ...)
  drop_rls_table_setup(table_name)
  drop_table(table_name, ...)
end

#drop_rls_tenant_table(table_name) ⇒ Object



29
30
31
32
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 29

def drop_rls_tenant_table(table_name, ...)
  drop_rls_initialize_setup(table_name)
  drop_table(table_name, ...)
end

#revert_from_rls_table(table_name) ⇒ Object



44
45
46
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 44

def revert_from_rls_table(table_name)
  drop_rls_table_setup(table_name)
end

#revert_from_rls_tenant_table(table_name) ⇒ Object



34
35
36
37
# File 'lib/pg_rls/active_record/connection_adapters/postgre_sql/schema_statements.rb', line 34

def revert_from_rls_tenant_table(table_name)
  drop_rls_initialize_setup(table_name)
  remove_column(table_name, :tenant_id)
end