aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/avatar
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-11-21 22:41:17 +0100
committerJoas Schilling <nickvergessen@gmx.de>2014-11-21 22:41:17 +0100
commitdd7e09d0924819b0233d3ed79d837cdcfad923f0 (patch)
tree8853124ecb81aa96ca677f9b324c660fb4ca4a47 /phpBB/phpbb/avatar
parentd7d4f681ca5e7d56acb24becbe48b6893bf5304d (diff)
parentf23634d58053efd811c87baafb1623624abb6c36 (diff)
downloadforums-dd7e09d0924819b0233d3ed79d837cdcfad923f0.tar
forums-dd7e09d0924819b0233d3ed79d837cdcfad923f0.tar.gz
forums-dd7e09d0924819b0233d3ed79d837cdcfad923f0.tar.bz2
forums-dd7e09d0924819b0233d3ed79d837cdcfad923f0.tar.xz
forums-dd7e09d0924819b0233d3ed79d837cdcfad923f0.zip
Merge pull request #3064 from marc1706/ticket/13197
[ticket/13197] Also delete group avatar from users that have it set
Diffstat (limited to 'phpBB/phpbb/avatar')
-rw-r--r--phpBB/phpbb/avatar/manager.php40
1 files changed, 32 insertions, 8 deletions
diff --git a/phpBB/phpbb/avatar/manager.php b/phpBB/phpbb/avatar/manager.php
index 42ae61a9a2..8d83152ed6 100644
--- a/phpBB/phpbb/avatar/manager.php
+++ b/phpBB/phpbb/avatar/manager.php
@@ -326,17 +326,41 @@ class manager
$driver->delete($avatar_data);
}
- $result = self::$default_row;
+ $result = $this->prefix_avatar_columns($prefix, self::$default_row);
- foreach ($result as $key => $value)
+ $sql = 'UPDATE ' . $table . '
+ SET ' . $db->sql_build_array('UPDATE', $result) . '
+ WHERE ' . $prefix . 'id = ' . (int) $avatar_data['id'];
+ $db->sql_query($sql);
+
+ // Make sure we also delete this avatar from the users
+ if ($prefix === 'group_')
{
- $result[$prefix . $key] = $value;
- unset($result[$key]);
+ $result = $this->prefix_avatar_columns('user_', self::$default_row);
+
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $result) . "
+ WHERE user_avatar = '" . $db->sql_escape($avatar_data['avatar']) . "'";
+ $db->sql_query($sql);
}
+ }
- $sql = 'UPDATE ' . $table . '
- SET ' . $db->sql_build_array('UPDATE', $result) . '
- WHERE ' . $prefix . 'id = ' . (int) $avatar_data['id'];
- $db->sql_query($sql);
+ /**
+ * Prefix avatar columns
+ *
+ * @param string $prefix Column prefix
+ * @param array $data Column data
+ *
+ * @return array Column data with prefixed column names
+ */
+ public function prefix_avatar_columns($prefix, $data)
+ {
+ foreach ($data as $key => $value)
+ {
+ $data[$prefix . $key] = $value;
+ unset($data[$key]);
+ }
+
+ return $data;
}
}