From 499f6349e652ccf5e91900a57d1f55c8bc8fdf3f Mon Sep 17 00:00:00 2001 From: Connor Turland Date: Tue, 28 Apr 2015 18:43:47 -0400 Subject: [PATCH] add ability for admin to delete any topics and synapses --- app/assets/javascripts/src/Metamaps.js | 4 ++-- app/models/synapse.rb | 6 +++--- app/models/topic.rb | 6 +++--- app/models/user.rb | 3 ++- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/src/Metamaps.js b/app/assets/javascripts/src/Metamaps.js index 37614179..2a378623 100644 --- a/app/assets/javascripts/src/Metamaps.js +++ b/app/assets/javascripts/src/Metamaps.js @@ -2776,7 +2776,7 @@ Metamaps.Control = { var node = Metamaps.Visualize.mGraph.graph.getNode(nodeid); var topic = node.getData('topic'); - var permToDelete = Metamaps.Active.Mapper.id === topic.get('user_id'); + var permToDelete = Metamaps.Active.Mapper.id === topic.get('user_id') || Metamaps.Active.Mapper.get('admin'); if (permToDelete) { var topicid = topic.id; var mapping = node.getData('mapping'); @@ -2945,7 +2945,7 @@ Metamaps.Control = { var synapse = edge.getData("synapses")[index]; var mapping = edge.getData("mappings")[index]; - var permToDelete = Metamaps.Active.Mapper.id === synapse.get('user_id'); + var permToDelete = Metamaps.Active.Mapper.id === synapse.get('user_id') || Metamaps.Active.Mapper.get('admin'); if (permToDelete) { if (edge.getData("synapses").length - 1 === 0) { Metamaps.Control.hideEdge(edge); diff --git a/app/models/synapse.rb b/app/models/synapse.rb index a1395648..bf3bdab2 100644 --- a/app/models/synapse.rb +++ b/app/models/synapse.rb @@ -41,10 +41,10 @@ class Synapse < ActiveRecord::Base end def authorize_to_delete(user) - if (self.user != user) - return false + if (self.user == user || user.admin) + return self end - return self + return false end # returns Boolean if user allowed to view Topic, Synapse, or Map diff --git a/app/models/topic.rb b/app/models/topic.rb index 7e5fff94..078c633e 100644 --- a/app/models/topic.rb +++ b/app/models/topic.rb @@ -112,10 +112,10 @@ class Topic < ActiveRecord::Base end def authorize_to_delete(user) - if (self.user != user) - return false + if (self.user == user || user.admin) + return self end - return self + return false end # returns Boolean if user allowed to view Topic, Synapse, or Map diff --git a/app/models/user.rb b/app/models/user.rb index 11062046..2e738134 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -45,7 +45,8 @@ class User < ActiveRecord::Base def as_json(options={}) { :id => self.id, :name => self.name, - :image => self.image.url(:sixtyfour) + :image => self.image.url(:sixtyfour), + :admin => self.admin } end