Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
# frozen_string_literal: true

require_relative 'group/query'
require_relative 'group/modify'
require_relative 'group/registration'

module FacultyRBAC
  # Container class to encapsulate all group methods
  class Group
    def self.create(controller, type:, context:, description:)
      controller.db.transaction do
        gid = controller.db[:rbac_group].insert
        g = Group.new(controller, gid)
        g.register(type:, context:, description:)
        g
      end
    end

    def initialize(controller, group_id)
      @id = group_id.to_i
      @controller = controller
    end

    attr_reader :id

    def to_i
      @id
    end

    def _db
      @controller.db
    end

    def delete
      _db[:rbac_group].where(id: @id).delete
    end

    include Query
    include Modify
    include Registration
  end
end