Class: ICFS::Users Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/icfs/users.rb

Overview

This class is abstract.

User, Role, Group, and Global Perms

Direct Known Subclasses

UsersFs, UsersRedis, UsersS3

Constant Summary collapse

ValUser =

Validate a user

{
  method: :hash,
  required: {
    'name' => Items::FieldUsergrp,
    'type' => {
      method: :string,
      allowed: Set[
        'user',
        'role',
        'group',
      ].freeze
    }.freeze
  }.freeze,
  optional: {
    'roles' => {
      method: :array,
      check: Items::FieldUsergrp,
      uniq: true
    }.freeze,
    'groups' => {
      method: :array,
      check: Items::FieldUsergrp,
      uniq: true
    }.freeze,
    'perms' => {
      method: :array,
      check: Items::FieldPermGlobal,
      uniq: true
    }.freeze
  }.freeze
}.freeze

Instance Method Summary collapse

Instance Method Details

#flush(urg) ⇒ Boolean

Flush a user/role/group from a cache, if any

Parameters:

  • urg (String)

    User/Role/Group name

Returns:

  • (Boolean)

    if cached

Raises:

  • (NotImplementedError)


67
# File 'lib/icfs/users.rb', line 67

def flush(urg); raise NotImplementedError; end

#read(urg) ⇒ Hash

Read a user/role/group

Parameters:

  • urg (String)

    User/Role/Group name

Returns:

  • (Hash)

    Will include :type and, if a user :roles, :groups, :perms

Raises:

  • (NotImplementedError)


76
# File 'lib/icfs/users.rb', line 76

def read(urg); raise NotImplementedError; end

#write(obj) ⇒ Object

Write a user/role/group

Parameters:

  • obj (Hash)

    Will include :name, :type, and if a user :roles, :groups, :perms

Raises:

  • (NotImplementedError)


85
# File 'lib/icfs/users.rb', line 85

def write(obj); raise NotImplementedError; end