Class: Decidim::Abilities::UserManagerAbility

Inherits:
Object
  • Object
show all
Includes:
CanCan::Ability
Defined in:
app/models/decidim/abilities/user_manager_ability.rb

Overview

Defines the abilities for an user with role ‘user_manager’. Intended to be used with ‘cancancan`.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user, context) ⇒ UserManagerAbility

Returns a new instance of UserManagerAbility.



12
13
14
15
16
17
# File 'app/models/decidim/abilities/user_manager_ability.rb', line 12

def initialize(user, context)
  @user = user
  @context = context

  define_abilities if not_admin? && user_manager?
end

Instance Attribute Details

#userObject (readonly)

Returns the value of attribute user.



10
11
12
# File 'app/models/decidim/abilities/user_manager_ability.rb', line 10

def user
  @user
end

Instance Method Details

#define_abilitiesObject



19
20
21
22
# File 'app/models/decidim/abilities/user_manager_ability.rb', line 19

def define_abilities
  can :read, :admin_dashboard
  can :impersonate, :managed_users
end

#not_admin?Boolean

Whether the user is an admin or not.

Returns:

  • (Boolean)


25
26
27
# File 'app/models/decidim/abilities/user_manager_ability.rb', line 25

def not_admin?
  @user && !@user.admin?
end

#user_manager?Boolean

Whether the user has the user_manager role or not.

Returns:

  • (Boolean)


30
31
32
# File 'app/models/decidim/abilities/user_manager_ability.rb', line 30

def user_manager?
  @user.role? "user_manager"
end