Skip to content

Commit

Permalink
Fixing overwrite and save slice permissions for a give role
Browse files Browse the repository at this point in the history
  • Loading branch information
sidgupta committed Apr 8, 2016
1 parent 0afa5d2 commit 91bac04
Showing 1 changed file with 22 additions and 11 deletions.
33 changes: 22 additions & 11 deletions caravel/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ def explore(self, datasource_type, datasource_id):

action = request.args.get('action')
if action in ('save', 'overwrite'):
return self.save(request.args, slc)
return self.saveOrOverwriteSlice(request.args, slc)

viz_type = request.args.get("viz_type")
if not viz_type and datasource.default_endpoint:
Expand Down Expand Up @@ -522,9 +522,8 @@ def explore(self, datasource_type, datasource_id):
mimetype="application/json")
return resp

def save(self, args, slc):
def saveOrOverwriteSlice(self, args, slc):
"""Saves (inserts or overwrite a slice) """
session = db.session()
slice_name = args.get('slice_name')
action = args.get('action')

Expand All @@ -549,9 +548,6 @@ def save(self, args, slc):

if action == "save":
slc = models.Slice()
msg = "Slice [{}] has been saved".format(slice_name)
elif action == "overwrite":
msg = "Slice [{}] has been overwritten".format(slice_name)

slc.params = json.dumps(d, indent=4, sort_keys=True)
slc.datasource_name = args.get('datasource_name')
Expand All @@ -561,13 +557,28 @@ def save(self, args, slc):
slc.datasource_type = datasource_type
slc.slice_name = slice_name

if action == "save":
session.add(slc)
elif action == "overwrite":
session.merge(slc)
if action == 'save':
self.save_slice(slc)
elif action == 'overwrite':
self.overwrite_slice(slc)

return redirect(slc.slice_url)

@has_access
def save_slice(self, slc):
session = db.session()
msg = "Slice [{}] has been saved".format(slc.slice_name)
session.add(slc)
session.commit()
flash(msg, "info")

@has_access
def overwrite_slice(self, slc):
session = db.session()
msg = "Slice [{}] has been overwritten".format(slc.slice_name)
session.merge(slc)
session.commit()
flash(msg, "info")
return redirect(slc.slice_url)

@has_access
@expose("/checkbox/<model_view>/<id_>/<attr>/<value>", methods=['GET'])
Expand Down

0 comments on commit 91bac04

Please sign in to comment.