2014-05-08 15:34:26 +04:00
|
|
|
require "db/exceptions/invalid_record"
|
|
|
|
|
require "db/mongo/models/mongo_model"
|
|
|
|
|
require "json"
|
|
|
|
|
|
|
|
|
|
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}
|
|
|
|
|
|
2015-02-12 13:01:05 +03:00
|
|
|
set_validators ::Validators::Key::FileExistence,
|
|
|
|
|
::Validators::Key::Scope
|
|
|
|
|
|
2014-05-08 15:34:26 +04:00
|
|
|
def initialize p={}
|
|
|
|
|
self.id = p["id"]
|
|
|
|
|
self.path = p["path"]
|
|
|
|
|
self.scope = p["scope"] || USER
|
|
|
|
|
end
|
|
|
|
|
|
2015-02-18 11:00:24 +03:00
|
|
|
def self.build_from_bson s
|
2014-05-08 15:34:26 +04:00
|
|
|
key = Key.new s
|
|
|
|
|
key.id = s["_id"]
|
|
|
|
|
key
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def self.create_from_json json
|
|
|
|
|
Key.new( JSON.parse(json) )
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def filename
|
|
|
|
|
File.basename(self.path)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def to_hash_without_id
|
|
|
|
|
o = {
|
|
|
|
|
"path" => self.path,
|
|
|
|
|
"scope" => self.scope
|
|
|
|
|
}
|
|
|
|
|
o
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|