1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-21 16:22:22 +02:00

[ticket/13197] Also delete group avatar from users that have it set

PHPBB3-13197
This commit is contained in:
Marc Alexander 2014-10-25 15:57:41 -07:00
parent f22cd2d734
commit 1da1a70650

View File

@ -326,17 +326,41 @@ class manager
$driver->delete($avatar_data);
}
$result = self::$default_row;
foreach ($result as $key => $value)
{
$result[$prefix . $key] = $value;
unset($result[$key]);
}
$result = $this->prefix_avatar_columns($prefix, self::$default_row);
$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 = $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);
}
}
/**
* 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;
}
}