diff options
author | mr <mr@mrautenberg.de> | 2010-12-02 11:56:52 +0100 |
---|---|---|
committer | mr <mr@mrautenberg.de> | 2010-12-02 11:56:52 +0100 |
commit | 6bdab49bab96cd5f498a36a0b76deb70cb945a21 (patch) | |
tree | 8a993c3d500f01d676b863ef9912e173b7d483a9 | |
parent | b91512499e7934642729f5511daa4dba570b97fd (diff) |
merge with helma/development
-rw-r--r-- | application.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/application.rb b/application.rb index 6518ea8..9f1841d 100644 --- a/application.rb +++ b/application.rb @@ -8,8 +8,11 @@ class Dataset property :id, Serial property :uri, String, :length => 255 property :yaml, Text, :length => 2**32-1 + property :token_id, String, :length => 255 property :created_at, DateTime + after :save, :check_policy + def load(params,request) data = request.env["rack.input"].read @@ -87,6 +90,11 @@ class Dataset end =end + private + def check_policy + OpenTox::Authorization.check_policy(uri, token_id) + end + end DataMapper.auto_upgrade! @@ -246,6 +254,8 @@ end # @return [text/uri-list] Task URI or Dataset URI (empty datasets) post '/?' do @dataset = Dataset.create + @dataset.token_id = params[:token_id] if params[:token_id] + @dataset.token_id = request.env['HTTP_TOKEN_ID'] if !dataset.token_id and request.env['HTTP_TOKEN_ID'] response['Content-Type'] = 'text/uri-list' @dataset.update(:uri => url_for("/#{@dataset.id}", :full)) if params.empty? and request.env["rack.input"].read.empty? @@ -292,6 +302,14 @@ delete '/:id' do dataset = Dataset.get(params[:id]) FileUtils.rm Dir["public/#{params[:id]}.*"] dataset.destroy! + if params[:token_id] and !Dataset.get(params[:id]) and uri + begin + aa = OpenTox::Authorization.delete_policies_from_uri(uri, params[:token_id]) + LOGGER.debug "Policy deleted for Dataset URI: #{uri} with result: #{aa}" + rescue + LOGGER.warn "Policy delete error for Dataset URI: #{uri}" + end + end response['Content-Type'] = 'text/plain' "Dataset #{params[:id]} deleted." rescue |