Skip to content

Commit

Permalink
bug:2855
Browse files Browse the repository at this point in the history
$conf['inheritance_by_default'] applies on FTP added albums

git-svn-id: http://piwigo.org/svn/trunk@23376 68402e56-0260-453c-a942-63ccdbb3a9ee
  • Loading branch information
flop25 committed Jun 19, 2013
1 parent 5937d97 commit af51f55
Showing 1 changed file with 88 additions and 1 deletion.
89 changes: 88 additions & 1 deletion admin/site_update.php
Expand Up @@ -266,6 +266,7 @@
$db_categories[$insert{'id'}] =
array(
'id' => $insert['id'],
'parent' => $parent,
'status' => $insert['status'],
'visible' => $insert['visible'],
'uppercats' => $insert['uppercats'],
Expand Down Expand Up @@ -298,11 +299,97 @@

// add default permissions to categories
$category_ids = array();
$category_up = array();
foreach ($inserts as $category)
{
$category_ids[] = $category['id'];
$category_up[] = $category['id_uppercat'];
}
$category_up=implode(',',array_unique($category_up));
if ($conf['inheritance_by_default'])
{
$query = '
SELECT *
FROM '.GROUP_ACCESS_TABLE.'
WHERE cat_id IN ('.$category_up.')
;';
$result = pwg_query($query);
$granted_grps = array();
while ($row = pwg_db_fetch_assoc($result))
{
if (is_null($granted_grps[$row['cat_id']]))
{
$granted_grps[$row['cat_id']]=array();
}
array_push(
$granted_grps,
array(
$row['cat_id'] => array_push($granted_grps[$row['cat_id']],$row['group_id'])
)
);
}
$insert_granted_grps=array();
foreach ($category_ids as $ids)
{
$parent=$db_categories[$ids]['parent'];
foreach ($granted_grps[$parent] as $granted_grp)
{
array_push(
$insert_granted_grps,
array(
'group_id' => $granted_grp,
'cat_id' => $ids
)
);

}
}

mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $insert_granted_grps);

$query = '
SELECT *
FROM '.USER_ACCESS_TABLE.'
WHERE cat_id IN ('.$category_up.')
;';
$result = pwg_query($query);
$granted_users = array();
while ($row = pwg_db_fetch_assoc($result))
{
if (is_null($granted_users[$row['cat_id']]))
{
$granted_users[$row['cat_id']]=array();
}
array_push(
$granted_users,
array(
$row['cat_id'] => array_push($granted_users[$row['cat_id']],$row['user_id'])
)
);
}
$insert_granted_users=array();
foreach ($category_ids as $ids)
{
$parent=$db_categories[$ids]['parent'];
foreach ($granted_users[$parent] as $granted_user)
{
array_push(
$insert_granted_users,
array(
'user_id' => $granted_user,
'cat_id' => $ids
)
);

}
}
mass_inserts(USER_ACCESS_TABLE, array('user_id','cat_id'), $insert_granted_users);

}
else
{
add_permission_on_category($category_ids, get_admins());
}
add_permission_on_category($category_ids, get_admins());
}

$counts['new_categories'] = count($inserts);
Expand Down

0 comments on commit af51f55

Please sign in to comment.