예제 #1
0
         @chmod($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $new_dir, 0777);
         // Apply parent ACL to new child.
         $array_parent_read = serendipity_ACLGet(0, 'directory', 'read', $serendipity['POST']['parent']);
         $array_parent_write = serendipity_ACLGet(0, 'directory', 'write', $serendipity['POST']['parent']);
         if (!is_array($array_parent_read) || count($array_parent_read) < 1) {
             $parent_read = array(0);
         } else {
             $parent_read = array_keys($array_parent_read);
         }
         if (!is_array($array_parent_write) || count($array_parent_write) < 1) {
             $parent_write = array(0);
         } else {
             $parent_write = array_keys($array_parent_write);
         }
         serendipity_ACLGrant(0, 'directory', 'read', $parent_read, $new_dir . '/');
         serendipity_ACLGrant(0, 'directory', 'write', $parent_write, $new_dir . '/');
     } else {
         $data['print_DIRECTORY_WRITE_ERROR'] = sprintf(DIRECTORY_WRITE_ERROR, $new_dir);
     }
     break;
 case 'directoryCreate':
 case 'directoryCreateSub':
     if (!serendipity_checkPermission('adminImagesDirectories')) {
         return;
     }
     $folders = serendipity_traversePath($serendipity['serendipityPath'] . $serendipity['uploadPath'], '', true, NULL, 1, NULL, 'write');
     usort($folders, 'serendipity_sortPath');
     $data['case_directoryCreate'] = true;
     $data['formtoken'] = serendipity_setFormToken();
     $data['folders'] = $folders;
     $data['dir'] = $serendipity['GET']['dir'];
예제 #2
0
    $data['doDelete'] = true;
    if ($serendipity['GET']['cid'] != 0) {
        $remaining_cat = (int) $serendipity['POST']['cat']['remaining_catid'];
        $category_ranges = serendipity_fetchCategoryRange((int) $serendipity['GET']['cid']);
        $category_range = implode(' AND ', $category_ranges);
        if ($serendipity['dbType'] == 'postgres' || $serendipity['dbType'] == 'sqlite' || $serendipity['dbType'] == 'sqlite3' || $serendipity['dbType'] == 'sqlite3oo' || $serendipity['dbType'] == 'pdo-sqlite') {
            $query = "UPDATE {$serendipity['dbPrefix']}entrycat\n                        SET categoryid={$remaining_cat} WHERE entryid IN\n                        (\n                          SELECT DISTINCT(e.id) FROM {$serendipity['dbPrefix']}entries e,\n                          {$serendipity['dbPrefix']}category c,\n                          {$serendipity['dbPrefix']}entrycat ec\n                          WHERE e.id=ec.entryid AND c.categoryid=ec.categoryid\n                          AND c.category_left BETWEEN {$category_range} {$admin_category}\n                        )";
        } else {
            $query = "UPDATE {$serendipity['dbPrefix']}entries e,\n                        {$serendipity['dbPrefix']}entrycat ec,\n                        {$serendipity['dbPrefix']}category c\n                      SET ec.categoryid={$remaining_cat}\n                        WHERE e.id = ec.entryid\n                          AND c.categoryid = ec.categoryid\n                          AND c.category_left BETWEEN {$category_range}\n                          {$admin_category}";
        }
        serendipity_db_query($query);
        if (serendipity_deleteCategory($category_range, $admin_category)) {
            foreach ($category_ranges as $cid) {
                if (serendipity_ACLCheck($serendipity['authorid'], $cid, 'category', 'write')) {
                    serendipity_ACLGrant($cid, 'category', 'read', array());
                    serendipity_ACLGrant($cid, 'category', 'write', array());
                }
            }
            $data['deleteSuccess'] = true;
            $data['remaining_cat'] = $remaining_cat;
            $data['cid'] = (int) $serendipity['GET']['cid'];
            $serendipity['GET']['adminAction'] = 'view';
        }
    } else {
        $data['deleteSuccess'] = false;
    }
}
if ($serendipity['GET']['adminAction'] == 'delete') {
    $data['delete'] = true;
    $this_cat = serendipity_fetchCategoryInfo($serendipity['GET']['cid']);
    if (serendipity_checkPermission('adminCategoriesDelete') && serendipity_checkPermission('adminCategoriesMaintainOthers') || serendipity_checkPermission('adminCategoriesDelete') && ($serendipity['authorid'] == $this_cat['authorid'] || $this_cat['authorid'] == '0') || serendipity_checkPermission('adminCategoriesDelete') && serendipity_ACLCheck($serendipity['authorid'], $serendipity['GET']['cid'], 'category', 'write')) {