Sha256: 7c1d97d8bd96f529f2ee310948eafc0e5b500869602c80af37590750760b53cd

Contents?: true

Size: 947 Bytes

Versions: 6

Compression:

Stored size: 947 Bytes

Contents

module Gritano
  module Core
    class User < ActiveRecord::Base
      validates :login, presence: true
      validates :login, uniqueness: true

      has_many :keys
      has_many :permissions
      has_many :repositories, through: :permissions

      def add_access(repo, access_type)
        permission = repo.permissions.where(user_id: self.id).first || repo.permissions.new(user_id: self.id)
        permission.add_access(access_type)
        permission.save
      end

      def remove_access(repo, access_type)
        permission = repo.permissions.where(user_id: self.id).first || repo.permissions.new(user_id: self.id)
        permission.remove_access(access_type)
        permission.save
      end

      def check_access(repo, access_type)
        permission = repo.permissions.where(user_id: self.id).first
        if permission
          permission.is(access_type)
        else
          false
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gritano-core-2.0.2 lib/gritano-core/user.rb
gritano-core-2.0.1 lib/gritano-core/user.rb
gritano-core-2.0.0 lib/gritano-core/user.rb
gritano-core-1.1.2 lib/gritano-core/user.rb
gritano-core-1.1.1 lib/gritano-core/user.rb
gritano-core-1.1.0 lib/gritano-core/user.rb