Module: PermissionManagement

Defined in:
lib/permission_management.rb,
lib/permission_management/engine.rb,
lib/permission_management/version.rb,
lib/generators/permission_management/install_generator.rb

Defined Under Namespace

Modules: Base, Generators Classes: BaseController, Engine, PermissionsController, RolesController, UserRolesController

Constant Summary collapse

DEFAULT_AUTHORIZE_USER_MODEL =
'User'
DEFAULT_USER_METHOD =
Proc.new do
  respond_to?("current_#{PermissionManagement.user_method}".to_sym) && send("current_#{PermissionManagement.user_method}".to_sym)
end
VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.action_typesObject



46
47
48
# File 'lib/permission_management.rb', line 46

def self.action_types
  [['No Access', :no_access], ['Admin (View, Create, Edit, Delete)', :manage], ['Observer (View Only)', :read]]
end

.current_user_methodObject



50
51
52
# File 'lib/permission_management.rb', line 50

def self.current_user_method
  DEFAULT_USER_METHOD
end

.except_models(arg = []) ⇒ Object



36
37
38
39
40
# File 'lib/permission_management.rb', line 36

def self.except_models(arg = [])
  return @except_models if @except_models
  @except_models = arg + ['PM::Role', 'PM::Permission']
  @except_models
end

.only_models(arg = :all) ⇒ Object



32
33
34
# File 'lib/permission_management.rb', line 32

def self.only_models(arg = :all)
  @only_models ||= arg
end

.permission_modelsObject



24
25
26
27
28
29
30
# File 'lib/permission_management.rb', line 24

def self.permission_models
  if only_models == :all
    ActiveRecord::Base.descendants.select{|ar| !except_models.include?(ar.to_s) }  
  else
    ActiveRecord::Base.descendants.select{|ar| (only_models - except_models).include?(ar.to_s) }
  end    
end

.role_typesObject



42
43
44
# File 'lib/permission_management.rb', line 42

def self.role_types
  [['Full Access', :super_admin], ['Read Only', :read_only], ['No Access', :no_access], ['Custom', :custom]]
end

.setup {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



11
12
13
# File 'lib/permission_management.rb', line 11

def self.setup
  yield self
end

.user_methodObject



20
21
22
# File 'lib/permission_management.rb', line 20

def self.user_method
  user_model.underscore
end

.user_model(arg = nil) ⇒ Object



15
16
17
18
# File 'lib/permission_management.rb', line 15

def self.user_model(arg = nil)
  @user_model = arg if arg.present?
  @user_model || DEFAULT_AUTHORIZE_USER_MODEL
end