Method: Scrivito::User.define

Defined in:
app/cms/scrivito/user.rb

.define(id) {|user| ... } ⇒ Object

Defines a new user.

Examples:

Scrivito::User.define('alice') do |user_definition|
  user_definition.description { 'Alice Almighty' }

  user_definition.can_always(:read, :workspace)
  user_definition.can_always(:write, :workspace)
  user_definition.can_always(:publish, :workspace, 'You can always publish workspaces.')
end

Scrivito::User.define('bob') do |user_definition|
  user_definition.description('Bob Doe')

  user_definition.can_never(:create, :workspace, 'You are not allowed to create workspaces.')
  user_definition.can_always(:read, :workspace)

  user_definition.restrict_obj_publish(using: :_obj_class) do |obj_class|
    if obj_class == 'BlogPost'
      false
    else
      'You are not allowed to publish blog posts.'
    end
  end
end

Parameters:

  • id (String)

    The unique, unalterable id of the user. The user id is used to associate the user with the corresponding CMS resources. It is persisted in the CMS.

Yield Parameters:

Raises:

See Also:



77
78
79
80
# File 'app/cms/scrivito/user.rb', line 77

def self.define(id, &block)
  assert_valid_id(id)
  define_user(id, &block)
end