class Mkxms::Mssql::PermissionGroup
Constants
- ACTION_STATEMENT_PROLOG_TEMPLATES
Attributes
action[RW]
permissions[R]
subject[RW]
Public Class Methods
new(action, subject)
click to toggle source
# File lib/mkxms/mssql/permission_handler.rb, line 12 def initialize(action, subject) @action = action @subject = subject @permissions = [] end
Public Instance Methods
is_super_permission?(p)
click to toggle source
# File lib/mkxms/mssql/permission_handler.rb, line 39 def is_super_permission?(p) action != 'granted' || p.grant_option? end
regular_permissions()
click to toggle source
# File lib/mkxms/mssql/permission_handler.rb, line 47 def regular_permissions permissions.select {|p| !is_super_permission? p} end
regular_permissions_graph()
click to toggle source
# File lib/mkxms/mssql/permission_handler.rb, line 31 def regular_permissions_graph Hash.new.tap do |result| regular_permissions.sort {|a, b| a.target <=> b.target}.group_by {|p| p.target}.each_pair do |target, perms| result[target] = perms.map(&:name) end end end
super_permissions()
click to toggle source
# File lib/mkxms/mssql/permission_handler.rb, line 43 def super_permissions permissions.select {|p| is_super_permission? p} end
super_permissions_sql()
click to toggle source
# File lib/mkxms/mssql/permission_handler.rb, line 21 def super_permissions_sql super_permissions.map do |p| ''.tap do |sql| sql << ACTION_STATEMENT_PROLOG_TEMPLATES[action] % [p.name, p.target, subject] sql << ' WITH GRANT OPTION' if p.grant_option? sql << ';' end end end