47 lines
		
	
	
		
			975 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			975 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "db/mongo/models/mongo_model"
 | |
| require "json"
 | |
| require "db/validators/key/file_existence"
 | |
| require "db/validators/key/scope"
 | |
| 
 | |
| module Devops
 | |
|   module Model
 | |
|     class Key < MongoModel
 | |
| 
 | |
|       SYSTEM = "system"
 | |
|       USER = "user"
 | |
| 
 | |
|       attr_accessor :id, :path, :scope
 | |
|       types :id => {:type => String, :empty => false},
 | |
|             :path => {:type => String, :empty => false},
 | |
|             :scope => {:type => String, :empty => false}
 | |
| 
 | |
|        set_validators ::Validators::Key::FileExistence,
 | |
|         ::Validators::Key::Scope
 | |
| 
 | |
|       def initialize p={}
 | |
|         self.id = p["id"]
 | |
|         self.path = p["path"]
 | |
|         self.scope = p["scope"] || USER
 | |
|       end
 | |
| 
 | |
|       def self.build_from_bson s
 | |
|         key = Key.new s
 | |
|         key.id = s["_id"]
 | |
|         key
 | |
|       end
 | |
| 
 | |
|       def filename
 | |
|         File.basename(self.path)
 | |
|       end
 | |
| 
 | |
|       def to_hash_without_id
 | |
|         {
 | |
|           "path" => self.path,
 | |
|           "scope" => self.scope
 | |
|         }
 | |
|       end
 | |
| 
 | |
|     end
 | |
|   end
 | |
| end
 |