diff --git a/ext/tag_edit/main.php b/ext/tag_edit/main.php
index cd80e2ea..dcf941d0 100644
--- a/ext/tag_edit/main.php
+++ b/ext/tag_edit/main.php
@@ -14,7 +14,9 @@ class TagEdit extends Extension {
$i_image_id = int_escape($_POST['image_id']);
$query = $_POST['query'];
send_event(new TagSetEvent($i_image_id, $_POST['tags']));
- send_event(new SourceSetEvent($i_image_id, $_POST['source']));
+ if($this->can_source()) {
+ send_event(new SourceSetEvent($i_image_id, $_POST['source']));
+ }
$page->set_mode("redirect");
$page->set_redirect(make_link("post/view/$i_image_id", $query));
}
@@ -67,7 +69,8 @@ class TagEdit extends Extension {
if(is_a($event, 'SetupBuildingEvent')) {
$sb = new SetupBlock("Tag Editing");
- $sb->add_bool_option("tag_edit_anon", "Allow anonymous editing: ");
+ $sb->add_bool_option("tag_edit_anon", "Allow anonymous tag editing: ");
+ $sb->add_bool_option("source_edit_anon", "
Allow anonymous source editing: ");
$event->panel->add_block($sb);
}
}
@@ -78,6 +81,11 @@ class TagEdit extends Extension {
return $config->get_bool("tag_edit_anon") || !$user->is_anonymous();
}
+ private function can_source() {
+ global $config, $user;
+ return $config->get_bool("source_edit_anon") || !$user->is_anonymous();
+ }
+
private function mass_tag_edit($search, $replace) {
global $database;
$search_id = $database->db->GetOne("SELECT id FROM tags WHERE tag=?", array($search));
diff --git a/ext/view/theme.php b/ext/view/theme.php
index 4357fa65..f9c4f4d1 100644
--- a/ext/view/theme.php
+++ b/ext/view/theme.php
@@ -85,7 +85,7 @@ class ViewTheme extends Themelet {
global $config;
global $user;
- if($config->get_bool("tag_edit_anon") || ($user->id != $config->get_int("anon_id"))) {
+ if($config->get_bool("tag_edit_anon") || !$user->is_anonymous()) {
$html .= " (edit)";
if(isset($_GET['search'])) {$h_query = "search=".url_escape($_GET['search']);}
@@ -94,13 +94,18 @@ class ViewTheme extends Themelet {
$h_tags = html_escape($image->get_tag_list());
$i_image_id = int_escape($image->id);
+ $source_edit = "";
+ if($config->get_bool("source_edit_anon") || !$user->is_anonymous()) {
+ $source_edit = "