merge r24986 from branch 2.5 to trunk
bug 2977 fixed: when moving an album, whatever the previous status private/public we must remove irrelevant permissions (a public album can have hidden permission, ie list of groups/users permitted). I've also found a bug in the algorithm that selects users/groups to delete (reverse parameters in array_diff). git-svn-id: http://piwigo.org/svn/trunk@24987 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
cd53c8fcd7
commit
2209edc7f0
1 changed files with 16 additions and 23 deletions
|
|
@ -1139,46 +1139,39 @@ SELECT status
|
|||
{
|
||||
foreach ($categories as $cat_id => $category)
|
||||
{
|
||||
switch ($category['status'])
|
||||
if ('public' == $category['status'])
|
||||
{
|
||||
case 'public' :
|
||||
{
|
||||
set_cat_status(array($cat_id), 'private');
|
||||
break;
|
||||
}
|
||||
case 'private' :
|
||||
{
|
||||
$subcats = get_subcat_ids(array($cat_id));
|
||||
set_cat_status(array($cat_id), 'private');
|
||||
}
|
||||
|
||||
$subcats = get_subcat_ids(array($cat_id));
|
||||
|
||||
foreach ($tables as $table => $field)
|
||||
{
|
||||
$query = '
|
||||
foreach ($tables as $table => $field)
|
||||
{
|
||||
$query = '
|
||||
SELECT '.$field.'
|
||||
FROM '.$table.'
|
||||
WHERE cat_id = '.$cat_id.'
|
||||
;';
|
||||
$category_access = array_from_query($query, $field);
|
||||
$category_access = array_from_query($query, $field);
|
||||
|
||||
$query = '
|
||||
$query = '
|
||||
SELECT '.$field.'
|
||||
FROM '.$table.'
|
||||
WHERE cat_id = '.$new_parent.'
|
||||
;';
|
||||
$parent_access = array_from_query($query, $field);
|
||||
$parent_access = array_from_query($query, $field);
|
||||
|
||||
$to_delete = array_diff($parent_access, $category_access);
|
||||
$to_delete = array_diff($category_access, $parent_access);
|
||||
|
||||
if (count($to_delete) > 0)
|
||||
{
|
||||
$query = '
|
||||
if (count($to_delete) > 0)
|
||||
{
|
||||
$query = '
|
||||
DELETE FROM '.$table.'
|
||||
WHERE '.$field.' IN ('.implode(',', $to_delete).')
|
||||
AND cat_id IN ('.implode(',', $subcats).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
}
|
||||
break;
|
||||
pwg_query($query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue