Sha256: 575a97634838ff3ac7b3491e8a66d531f0a9feff5572a3ae7f2a6a9fcd312ca4

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

module Users
  #:nodoc:
  module Model
    ##
    # Model that represents a single user group.
    #
    # @since  0.1
    #
    class UserGroup < Sequel::Model
      include Zen::Model::Helper

      many_to_many :users      , :class => 'Users::Model::User'
      one_to_many  :permissions, :class => 'Users::Model::Permission'

      plugin :sluggable, :source => :name, :freeze => false
      plugin :association_dependencies, :permissions => :delete,
        :users => :nullify

      ##
      # Searches for a set of users that match the given query.
      #
      # @since  16-10-2011
      # @param  [String] query The search query.
      # @return [Mixed]
      #
      def self.search(query)
        return filter(search_column(:name, query))
      end

      ##
      # Validation rules for each user group used when
      # creating or updating a group.
      #
      # @since  0.1
      #
      def validate
        validates_presence([:name, :super_group])
        validates_max_length(255, :name)
        validates_unique(:slug)

        validates_type(TrueClass, :super_group)
      end
    end # UserGroup
  end # Model
end # Users

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zen-0.3 lib/zen/package/users/lib/users/model/user_group.rb
zen-0.3b1 lib/zen/package/users/lib/users/model/user_group.rb
zen-0.3b lib/zen/package/users/lib/users/model/user_group.rb