Module: PgSqlTriggers::PermissionChecking
- Extended by:
- ActiveSupport::Concern
- Included in:
- ApplicationController
- Defined in:
- app/controllers/concerns/pg_sql_triggers/permission_checking.rb
Instance Method Summary collapse
-
#can_apply_triggers? ⇒ Boolean
True if current actor can apply triggers.
-
#can_drop_triggers? ⇒ Boolean
True if current actor can drop triggers.
-
#can_enable_disable_triggers? ⇒ Boolean
True if current actor can enable/disable triggers.
-
#can_execute_sql_operations? ⇒ Boolean
True if the
:execute_sqlaction is allowed (privileged SQL for host apps; not used by built-in UI). -
#can_generate_triggers? ⇒ Boolean
True if current actor can generate triggers.
-
#can_view_triggers? ⇒ Boolean
True if current actor can view triggers.
-
#check_admin_permission ⇒ Object
Checks if current actor has admin permissions (drop/re-execute).
-
#check_operator_permission ⇒ Object
Checks if current actor has operator permissions (enable/disable/apply).
-
#check_viewer_permission ⇒ Object
Checks if current actor has viewer permissions.
-
#current_actor ⇒ Hash
Returns the current actor (user) performing the action.
-
#current_user_id ⇒ String
Returns the current user ID.
-
#current_user_type ⇒ String
Returns the current user type.
Instance Method Details
#can_apply_triggers? ⇒ Boolean
Returns true if current actor can apply triggers.
114 115 116 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 114 def can_apply_triggers? PgSqlTriggers::Permissions.can?(current_actor, :apply_trigger, environment: current_environment) end |
#can_drop_triggers? ⇒ Boolean
Returns true if current actor can drop triggers.
98 99 100 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 98 def can_drop_triggers? PgSqlTriggers::Permissions.can?(current_actor, :drop_trigger, environment: current_environment) end |
#can_enable_disable_triggers? ⇒ Boolean
Returns true if current actor can enable/disable triggers.
93 94 95 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 93 def can_enable_disable_triggers? PgSqlTriggers::Permissions.can?(current_actor, :enable_trigger, environment: current_environment) end |
#can_execute_sql_operations? ⇒ Boolean
Returns true if the :execute_sql action is allowed (privileged SQL for host apps; not used by built-in UI).
104 105 106 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 104 def can_execute_sql_operations? PgSqlTriggers::Permissions.can?(current_actor, :execute_sql, environment: current_environment) end |
#can_generate_triggers? ⇒ Boolean
Returns true if current actor can generate triggers.
109 110 111 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 109 def can_generate_triggers? PgSqlTriggers::Permissions.can?(current_actor, :generate_trigger, environment: current_environment) end |
#can_view_triggers? ⇒ Boolean
Returns true if current actor can view triggers.
88 89 90 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 88 def can_view_triggers? PgSqlTriggers::Permissions.can?(current_actor, :view_triggers, environment: current_environment) end |
#check_admin_permission ⇒ Object
Checks if current actor has admin permissions (drop/re-execute).
73 74 75 76 77 78 79 80 81 82 83 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 73 def can_access = begin PgSqlTriggers::Permissions.can?(current_actor, :drop_trigger, environment: current_environment) rescue StandardError => e Rails.logger.error("Permission check failed: #{e.}\n#{e.backtrace.join("\n")}") false end return if can_access redirect_to root_path, alert: "Insufficient permissions. Admin role required." end |
#check_operator_permission ⇒ Object
Checks if current actor has operator permissions (enable/disable/apply).
58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 58 def can_access = begin PgSqlTriggers::Permissions.can?(current_actor, :enable_trigger, environment: current_environment) rescue StandardError => e Rails.logger.error("Permission check failed: #{e.}\n#{e.backtrace.join("\n")}") false end return if can_access redirect_to root_path, alert: "Insufficient permissions. Operator role required." end |
#check_viewer_permission ⇒ Object
Checks if current actor has viewer permissions.
43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 43 def can_access = begin PgSqlTriggers::Permissions.can?(current_actor, :view_triggers, environment: current_environment) rescue StandardError => e Rails.logger.error("Permission check failed: #{e.}\n#{e.backtrace.join("\n")}") false end return if can_access redirect_to root_path, alert: "Insufficient permissions. Viewer role required." end |
#current_actor ⇒ Hash
Returns the current actor (user) performing the action. Override this method in host application to provide actual user.
17 18 19 20 21 22 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 17 def current_actor { type: current_user_type, id: current_user_id } end |
#current_user_id ⇒ String
Returns the current user ID. Override this method in host application.
36 37 38 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 36 def current_user_id "unknown" end |
#current_user_type ⇒ String
Returns the current user type. Override this method in host application.
28 29 30 |
# File 'app/controllers/concerns/pg_sql_triggers/permission_checking.rb', line 28 def current_user_type "User" end |