2013-01-24 4 views
0

Мой конкретный веб-сайт открыт для ограниченного члена организации. каждый член организации назначается группе пользователей в соответствии с их департаментом организации. Я даю им (их пользовательскую группу, чтобы быть точным) доступ, чтобы добавить свой собственный специальный контент, и, конечно, им разрешено загружать и прикреплять свои собственные изображения/файлы на своей собственной странице.конкретный5 ограничение доступа к файлам только для владельца файла

Теперь, касаясь этих изображений/файлов, я не хочу, чтобы они имели доступ ко всем ранее загруженным файлам (кем бы то ни было). Они могут получить доступ только к файлу, который принадлежит им (или, по крайней мере, принадлежит их группе пользователей).

Последняя версия Concrete5 (5.6) обладает весьма универсальной способностью устанавливать разрешение для каждого отдельного файла. Но это не совсем то, что я хочу. Устанавливать разрешение для всех файлов один за другим было бы нецелесообразно. Я хочу, чтобы все это было настроено автоматически. Так что, когда они загружают свой файл, разрешение на этот файл автоматически присваивается исключительно доступным только для них, ни один другой пользователь не должен иметь доступ к своему файлу, за исключением супер-администратора, конечно.

This is ближайшая дискуссия по форуму У меня возникла проблема, но, к сожалению, обсуждение заканчивается без реального решения.

Что мне делать, чтобы получить эту функцию? действительно ли конкретная 5 действительно имеет эту функциональность? если нет, есть ли какая-то возможность добавления этой функции? или если я должен получить руки грязные, изменяя конкретный основной код ядра, с чего мне начать? какие файлы я могу переопределить?

ответ

0

я копал concrete5 основного кода себя и после того, как много испытаний здесь и там, я нашел решение

Самый простой способ для достижения этой цели является добавление более, если условно на elements\files\search_results.php

следуя overriding structure, copy \concrete\elements\files\search_results.php to elements\files\search_results.php

Этот файл используется для создания файла5, чтобы показать список файлов (на основе критериев поиска) в файловом менеджере. Идите проверить код, вы будете знать, что редактировать там, в соответствии с вашим собственным требованием.

В моем случае, я добавляю это зависимость от цикла Еогеасп

$u = new User(); 

if($u->inGroup(Group::getByName("Administrators")) || $u->getUserName() == "admin" || 
$f->getUserID() == $u->getUserID()){ 
    $pf = new Permissions($f); 
    if (!isset($striped) || $striped == 'ccm-list-record-alt') { 
     $striped = ''; 
    } else if ($striped == '') { 
     $striped = 'ccm-list-record-alt'; 
    } 
    $star_icon = ($f->isStarred() == 1) ? 'star_yellow.png' : 'star_grey.png'; 
    $fv = $f->getApprovedVersion(); 
    ... cut ... 
    <?php } ?> 

    </tr> 
    <?php 
} ?> 
Смежные вопросы