Class: Ditty::UserPolicy

Inherits:
ApplicationPolicy show all
Defined in:
lib/ditty/policies/user_policy.rb

Defined Under Namespace

Classes: Scope

Instance Attribute Summary

Attributes inherited from ApplicationPolicy

#record, #user

Instance Method Summary collapse

Methods inherited from ApplicationPolicy

#initialize

Constructor Details

This class inherits a constructor from Ditty::ApplicationPolicy

Instance Method Details

#create?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/ditty/policies/user_policy.rb', line 12

def create?
  user&.super_admin?
end

#delete?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/ditty/policies/user_policy.rb', line 28

def delete?
  create? && record&.super_admin? == false
end

#list?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/ditty/policies/user_policy.rb', line 16

def list?
  create?
end

#permitted_attributesObject



32
33
34
35
36
# File 'lib/ditty/policies/user_policy.rb', line 32

def permitted_attributes
  attribs = %i[email name surname]
  attribs << :role_id if user.super_admin?
  attribs
end

#read?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/ditty/policies/user_policy.rb', line 20

def read?
  user && (record.id == user.id || user.super_admin?)
end

#register?Boolean

Returns:

  • (Boolean)


7
8
9
10
# File 'lib/ditty/policies/user_policy.rb', line 7

def register?
  # TODO: Check email domain against settings
  !['1', 1, 'true', true, 'yes'].include? ENV['DITTY_REGISTERING_DISABLED']
end

#update?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/ditty/policies/user_policy.rb', line 24

def update?
  read?
end