function album_get_auth_keys($cur_cat_id = ALBUM_ROOT_CATEGORY, $auth_key = ALBUM_AUTH_VIEW, $all = false, $level = -1, $max = -1) { global $album_data; $keys = array(); $last_i = -1; // add the level if ($max < ALBUM_ROOT_CATEGORY + 1 || $level < $max || $level == $max && $album_data['parent'][$album_data['keys'][$cur_cat_id]] == ALBUM_ROOT_CATEGORY) { if ($cur_cat_id == ALBUM_ROOT_CATEGORY || album_check_permission($album_data['auth'][$cur_cat_id], $auth_key) || $all) { // if child of cat, align the level on the parent one $orig_level = $level; // store this level $last_i++; $keys['keys'][$cur_cat_id] = $last_i; $keys['id'][$last_i] = $cur_cat_id; $keys['real_level'][$last_i] = $orig_level; $keys['level'][$last_i] = $level; $keys['idx'][$last_i] = isset($album_data['keys'][$cur_cat_id]) ? $album_data['keys'][$cur_cat_id] : ALBUM_ROOT_CATEGORY; // get sub-levels for ($i = 0; $i < sizeof($album_data['sub'][$cur_cat_id]); $i++) { $subkeys = array(); $subkeys = album_get_auth_keys($album_data['sub'][$cur_cat_id][$i], $auth_key, $all, $orig_level + 1, $max); // add sub-levels for ($j = 0; $j < sizeof($subkeys['id']); $j++) { $last_i++; $keys['keys'][$subkeys['id'][$j]] = $last_i; $keys['id'][$last_i] = $subkeys['id'][$j]; $keys['real_level'][$last_i] = $subkeys['real_level'][$j]; $keys['level'][$last_i] = $subkeys['level'][$j]; $keys['idx'][$last_i] = $subkeys['idx'][$j]; } // for( $j = 0..... } // for($i = 0..... } // if ($cur_cat_id == ALBUM_ROOT.... } // if (($max < 0 ..... if ($level <= ALBUM_ROOT_CATEGORY && ALBUM_HIERARCHY_DEBUG_ENABLED == true) { album_debug('album_get_auth_keys = %s', $keys); } return $keys; }
function album_get_sub_cat_ids($cur_cat_id = ALBUM_ROOT_CATEGORY, &$cats, $auth_key = ALBUM_AUTH_VIEW, $include_cur_cat_id = false) { global $album_data; if ($include_cur_cat_id == true) { if (album_check_permission($album_data['auth'][$cur_cat_id], $auth_key)) { $cats[] = $cur_cat_id; } } // get all the sub category id for current sub category for ($j = 0; $j < sizeof($album_data['sub'][$cur_cat_id]); $j++) { $subcur = $album_data['sub'][$cur_cat_id][$j]; $subthis = $album_data['keys'][$subcur]; $subdata = $album_data['data'][$subthis]; // add the category id //if ($album_data['auth'][$cur][$auth_key] == 1) //if (album_check_permission($wdata['cat_id'], $auth_key)) if (album_check_permission($album_data['auth'][$subcur], $auth_key)) { $cats[] = $subdata['cat_id']; } } // do this for each sub category... recursive for ($i = 0; $i < sizeof($album_data['sub'][$cur_cat_id]); $i++) { album_get_sub_cat_ids($album_data['sub'][$cur_cat_id][$i], $cats); } }
if (!album_check_permission($auth_data, ALBUM_AUTH_UPLOAD)) { if ($album_user_id != $user->data['user_id'] && $user->data['user_level'] != ADMIN) { if ($album_user_id <= 0 && !$user->data['session_logged_in']) { redirect(append_sid(CMS_PAGE_LOGIN . '?redirect=album_cat.' . PHP_EXT)); } $album_user_id = isset($_GET['user_id']) && intval($_GET['user_id']) > 1 ? intval($_GET['user_id']) : $user->data['user_id']; //$album_user_id = $user->data['user_id']; } else { $message = $lang['No_Personal_Category_admin']; $message .= '<br /><br />' . sprintf($lang['Click_return_album_index'], '<a href="' . append_sid(album_append_uid('album.' . PHP_EXT)) . '">', '</a>'); message_die(GENERAL_MESSAGE, $message); } } } else { $auth_data = album_permissions($album_user_id, $cat_id, ALBUM_AUTH_MANAGE_PERSONAL_CATEGORIES); if (!album_check_permission($auth_data, ALBUM_AUTH_MANAGE_PERSONAL_CATEGORIES)) { if ($album_user_id != $user->data['user_id'] && $user->data['user_level'] != ADMIN) { if ($album_user_id <= 0 && !$user->data['session_logged_in']) { redirect(append_sid(CMS_PAGE_LOGIN . '?redirect=album_cat.' . PHP_EXT)); } if (!isset($_GET['action'])) { redirect(append_sid('album.' . PHP_EXT)); } $album_user_id = $user->data['user_id']; } else { $message = $lang['No_Personal_Category_admin']; $message .= '<br /><br />' . sprintf($lang['Click_return_album_index'], '<a href="' . append_sid('album.' . PHP_EXT) . '">', '</a>'); message_die(GENERAL_MESSAGE, $message); } } }
$mode = 'delete'; } elseif (isset($_POST['approval'])) { $mode = 'approval'; } elseif (isset($_POST['unapproval'])) { $mode = 'unapproval'; } elseif (isset($_POST['copy'])) { $mode = 'copy'; } // END $mode (select action) //album_read_tree($album_user_id); album_read_tree(ALBUM_ROOT_CATEGORY); // ------------------------------------ // Check the permissions // ------------------------------------ $auth_data = album_permissions($album_user_id, $cat_id, ALBUM_AUTH_VIEW_AND_UPLOAD | ALBUM_AUTH_MODERATOR, $thiscat); if (!album_check_permission($auth_data, ALBUM_AUTH_MODERATOR)) { if (!$user->data['session_logged_in']) { redirect(append_sid(album_append_uid(CMS_PAGE_LOGIN . '?redirect=album_modcp.' . PHP_EXT . '&cat_id=' . $cat_id))); } else { message_die(GENERAL_ERROR, $lang['Not_Authorized']); } } // END permissions /* +---------------------------------------------------------- | Main work here... +---------------------------------------------------------- */ if (empty($mode)) { // -------------------------------- // Moderator Control Panel
$download_img = $images['download_pic']; $download_link = append_sid(album_append_uid('album_download.' . PHP_EXT . '?cat_id=' . intval($cat_id) . ($sort_method != '' ? '&sort_method=' . $sort_method : '') . ($sort_order != '' ? '&sort_order=' . $sort_order : '') . ($start != '' ? '&start=' . $start : ''))); $download_full_link = '<a href="' . $download_link . '"><img src="' . $download_img . '" alt="' . $lang['Download_page'] . '" title="' . $lang['Download_page'] . '" align="middle" border="0" /></a>'; if (album_check_permission($auth_data, ALBUM_AUTH_UPLOAD) == true && $enable_picture_upload_switch == false || ($no_personal_gallery = false)) { $template->assign_block_vars('enable_picture_upload_pg', array()); } // Enable download only for own personal galleries //if (($total_pics > 0) && ($enable_picture_download_switch == false) && ($thiscat['cat_user_id'] == $user->data['user_id'])) if ($total_pics > 0 && $enable_picture_download_switch == false) { $template->assign_block_vars('enable_picture_download_pg', array()); } if ($no_personal_gallery == false) { $auth_data = album_permissions($album_user_id, $cat_id, ALBUM_AUTH_ALL, $thiscat); $auth_list = album_build_auth_list($album_user_id, $cat_id); //if((album_check_permission($auth_data, ALBUM_AUTH_MANAGE_PERSONAL_CATEGORIES) == true) && ($is_root_cat) && (!$has_sub_cats && !$has_parent_cats)) if (album_check_permission($auth_data, ALBUM_AUTH_MANAGE_PERSONAL_CATEGORIES) == true && ($is_root_cat && $row['count'] >= 0 || !$is_root_cat)) { $template->assign_block_vars('manage_personal_gal_folders', array()); } } // ------------------------------------------------------------------------ // Check if we should show the view toggle button // ------------------------------------------------------------------------ if ($album_config['show_all_in_personal_gallery'] == 1) { $template->assign_block_vars('enable_view_toggle', array()); } if ($thiscat['cat_user_id'] == $user->data['user_id']) { $template->assign_block_vars('switch_own_gallery', array()); } $template->assign_block_vars('personal_gallery_header', array()); // ------------------------------------------------------------------------ // Do our template info...