chg: [tags UI] edit object tags (delete tags)

pull/449/head
Terrtia 2020-01-08 17:11:37 +01:00
parent 85d5770e80
commit 3a691a4af3
No known key found for this signature in database
GPG Key ID: 1E1B1F50D84613D0
5 changed files with 77 additions and 29 deletions

View File

@ -64,6 +64,12 @@ def get_active_taxonomies():
def get_active_galaxies(): def get_active_galaxies():
return r_serv_tags.smembers('active_galaxies') return r_serv_tags.smembers('active_galaxies')
def get_all_taxonomies_tags(): # # TODO: add + REMOVE + Update
return r_serv_tags.smembers('active_taxonomies_tags')
def get_all_galaxies_tags(): # # TODO: add + REMOVE + Update
return r_serv_tags.smembers('active_galaxies_tags')
def is_taxonomie_tag_enabled(taxonomie, tag): def is_taxonomie_tag_enabled(taxonomie, tag):
if tag in r_serv_tags.smembers('active_tag_' + taxonomie): if tag in r_serv_tags.smembers('active_tag_' + taxonomie):
return True return True
@ -94,6 +100,7 @@ def enable_taxonomy(taxonomie, enable_tags=True):
# activate taxonomie tags # activate taxonomie tags
for tag in taxonomie_info.machinetags(): for tag in taxonomie_info.machinetags():
r_serv_tags.sadd('active_tag_{}'.format(taxonomie), tag) r_serv_tags.sadd('active_tag_{}'.format(taxonomie), tag)
#r_serv_tags.sadd('active_taxonomies_tags', tag)
else: else:
print('Error: {}, please update pytaxonomies'.format(taxonomie)) print('Error: {}, please update pytaxonomies'.format(taxonomie))

View File

@ -43,28 +43,6 @@ tags_ui = Blueprint('tags_ui', __name__, template_folder=os.path.join(os.environ
# ============= ROUTES ============== # ============= ROUTES ==============
# @Tags.route("/Tags/addTags") # REVIEW: # used in showPaste
# @login_required
# @login_analyst
# def addTags():
#
# tags = request.args.get('tags')
# tagsgalaxies = request.args.get('tagsgalaxies')
# path = request.args.get('path')
#
# list_tag = tags.split(',')
# list_tag_galaxies = tagsgalaxies.split(',')
#
# res = Tag.add_items_tags(list_tag, list_tag_galaxies, item_id=path)
# print(res)
# # error
# if res[1] != 200:
# return str(res[0])
# # success
# return redirect(url_for('showsavedpastes.showsavedpaste', paste=path))
@tags_ui.route('/tag/add_tags') @tags_ui.route('/tag/add_tags')
@login_required @login_required
@login_analyst @login_analyst
@ -72,8 +50,8 @@ def add_tags():
tags = request.args.get('tags') tags = request.args.get('tags')
tagsgalaxies = request.args.get('tagsgalaxies') tagsgalaxies = request.args.get('tagsgalaxies')
object_id = request.args.get('object_id') # old: item_id object_id = request.args.get('object_id')
object_type = request.args.get('object_type') # old type object_type = request.args.get('object_type')
list_tag = tags.split(',') list_tag = tags.split(',')
list_tag_galaxies = tagsgalaxies.split(',') list_tag_galaxies = tagsgalaxies.split(',')
@ -85,7 +63,19 @@ def add_tags():
return redirect(Correlate_object.get_item_url(object_type, object_id)) return redirect(Correlate_object.get_item_url(object_type, object_id))
@tags_ui.route('/tag/delete_tag')
@login_required
@login_analyst
def delete_tag():
object_type = request.args.get('object_type')
object_id = request.args.get('object_id')
tag = request.args.get('tag')
res = Tag.api_delete_obj_tags(tags=[tag], object_id=object_id, object_type=object_type)
if res[1] != 200:
return str(res[0])
return redirect(Correlate_object.get_item_url(object_type, object_id))
# # add route : /crawlers/show_domain # # add route : /crawlers/show_domain
# @tags_ui.route('/tags/search/domain') # @tags_ui.route('/tags/search/domain')

View File

@ -369,9 +369,8 @@ def get_tags_galaxy():
@Tags.route("/Tags/remove_tag") @Tags.route("/Tags/remove_tag")
@login_required @login_required
@login_analyst @login_analyst
def remove_tag(): def remove_tag(): #TODO remove me , used by showpaste
#TODO verify input
path = request.args.get('paste') path = request.args.get('paste')
tag = request.args.get('tag') tag = request.args.get('tag')

View File

@ -79,10 +79,13 @@
</table> </table>
<div> <div>
{% include 'modals/edit_tag.html' %}
{% for tag in dict_domain['tags'] %} {% for tag in dict_domain['tags'] %}
<a href="{{ url_for('Tags.Tags_page') }}?ltags={{ tag }}"> <button class="btn btn-{{ bootstrap_label[loop.index0 % 5] }}" data-toggle="modal" data-target="#edit_tags_modal"
<span class="badge badge-{{ bootstrap_label[loop.index0 % 5] }} pull-left">{{ tag }}</span> data-tagid="{{ tag }}" data-objtype="domain" data-objid="{{ dict_domain['domain'] }}">
</a> {{ tag }}
</button>
{% endfor %} {% endfor %}
<br> <br>
{% include 'modals/add_tags.html' %} {% include 'modals/add_tags.html' %}

View File

@ -0,0 +1,49 @@
<div id="edit_tags_modal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<div id="add_tags_modal_content" class="modal-content">
<div class="modal-header" style="border-bottom: 4px solid #cccccc; background-color: #cccccc; color: #ffffff;">
<h4>Edit Tag</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body text-center">
<h2><span class="badge badge-warning" id="modal_tag_edit_tag_id">Warning</span></h2>
</div>
<div class="modal-footer">
<!-- <a href="{{ url_for('Tags.tag_validation') }}?object_id=rrrrr&tag=eeeeee&status=tp" class="btn btn-outline-success mr-0" data-toggle="tooltip" title="Good Detection">
<i class="fas fa-thumbs-up"></i>
</a>
<a href="{{ url_for('Tags.tag_validation') }}?object_id=rrrrr&tag=eeeeee&status=fp" class="btn btn-outline-danger mr-auto" data-toggle="tooltip" title="Bad Detection">
<i class="fas fa-thumbs-down"></i>
</a>
<a href="{{ url_for('Tags.confirm_tag') }}?object_id=rrrrr&tag=eeeeee" class="btn btn-primary">
<i class="fas fa-check"></i> Confirm this Tag
</a> -->
<a href="#" class="btn btn-danger" id="modal_tag_edit_delete_tag">
<i class="fas fa-trash-alt"></i> Delete this Tag
</a>
</div>
</div>
</div>
</div>
<script>
// tagid + objtype + objid
$('#edit_tags_modal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var tagid = button.data('tagid')
var objtype = button.data('objtype')
var objid = button.data('objid')
var modal = $(this)
modal.find('#modal_tag_edit_tag_id').text(tagid)
modal.find('#modal_tag_edit_delete_tag').prop("href", "{{ url_for('tags_ui.delete_tag') }}?object_type="+ objtype +"&object_id="+ objid +"&tag="+ tagid)
})
</script>