Sha256: 8276ce1a08c88b570d3ef721da4c6164c89422b6023332988b51b7395478f2bc

Contents?: true

Size: 902 Bytes

Versions: 7

Compression:

Stored size: 902 Bytes

Contents

# encoding: UTF-8

require 'base58'

module Spontaneous
  module Permissions

    autoload :UserLevel, "spontaneous/permissions/user_level"
    autoload :User, "spontaneous/permissions/user"
    autoload :AccessGroup, "spontaneous/permissions/access_group"
    autoload :AccessKey, "spontaneous/permissions/access_key"

    @@active_user = nil

    class << self
      # Convenience shortcut so we can do Permissions[:root]
      def [](level_name)
        UserLevel[level_name]
      end

      def root
        UserLevel.root
      end

      def has_level?(user, level)
        return true unless user
        user.level >= level
      end

      def random_string(length)
        bytes = ((length * Math.log10(58))/(8 * Math.log10(2))).ceil + 2
        string = Base58.encode(OpenSSL::Random.random_bytes(bytes).unpack("h*").first.to_i(16))
        string[0...(length)]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spontaneous-0.2.0.alpha7 lib/spontaneous/permissions.rb
spontaneous-0.2.0.alpha6 lib/spontaneous/permissions.rb
spontaneous-0.2.0.alpha5 lib/spontaneous/permissions.rb
spontaneous-0.2.0.alpha4 lib/spontaneous/permissions.rb
spontaneous-0.2.0.alpha3 lib/spontaneous/permissions.rb
spontaneous-0.2.0.alpha2 lib/spontaneous/permissions.rb
spontaneous-0.2.0.alpha1 lib/spontaneous/permissions.rb