Sha256: f92c14e41922e5244d7a4ba6c1199d000486fdb7fb2e38bb86f33aa083e51451

Contents?: true

Size: 861 Bytes

Versions: 19

Compression:

Stored size: 861 Bytes

Contents

module Gritano
  class Key < ActiveRecord::Base
    
    validates :name, :key, presence: true
    validates :name, :uniqueness => { :scope => :user_id, :message => "should happen once per user" }

    belongs_to :user

    def self.config=(cfg)
      @config = cfg
    end

    def self.authorized_keys
      if @config
        unless @config['ssh']
          return generate_authorized_keys
        end
      else
        return generate_authorized_keys
      end
      return ""
    end
    
    def self.generate_authorized_keys
      authorized_keys = ""
      keys = Key.find(:all)
      keys.each do |k|
        user_key = k.key
        unless k.key[-1] == "\n"
          user_key = user_key + "\n"
        end
        authorized_keys += "command=\"gritano-remote #{k.user.login}\" #{user_key}\n"
      end
      return authorized_keys
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
gritano-1.0.0 lib/gritano/models/key.rb
gritano-0.11.2 lib/gritano/models/key.rb
gritano-0.11.1 lib/gritano/models/key.rb
gritano-0.11.0 lib/gritano/models/key.rb
gritano-0.10.3 lib/gritano/models/key.rb
gritano-0.10.2 lib/gritano/models/key.rb
gritano-0.10.1 lib/gritano/models/key.rb
gritano-0.10.0 lib/gritano/models/key.rb
gritano-0.9.4 lib/gritano/models/key.rb
gritano-0.9.3 lib/gritano/models/key.rb
gritano-0.9.2 lib/gritano/models/key.rb
gritano-0.9.1 lib/gritano/models/key.rb
gritano-0.9.0 lib/gritano/models/key.rb
gritano-0.8.1 lib/gritano/models/key.rb
gritano-0.8.0 lib/gritano/models/key.rb
gritano-0.7.2 lib/gritano/models/key.rb
gritano-0.7.1 lib/gritano/models/key.rb
gritano-0.7.0 lib/gritano/models/key.rb
gritano-0.6.0 lib/gritano/models/key.rb