Typy zawartości - widoczne dla wybranych grup

Utworzyłem sobie typ zawartości „Ogłoszenia admina”, ale chciałbym aby w menu dodaj zawartość był on widoczny tylko dla użytkowników z daną rangą, jak mogę to osiągnąć, drupal sam w sobie oferuje taką funkcjonalność czy potrzeba dodatkowego modułu, jeśli tak to jak on się nazywa?

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.
Portret użytkownika warna

Zakładam, że odpowiednią

Zakładam, że odpowiednią rangę masz już stworzoną. Dalej wchodzisz w Zarządzanie użytkownikami > Kontrola dostępu, szukasz moduł node i zaptaszkowujesz przy odpowiedniej grupie „create (i/lub) edit rodzaj_zawartosci”

Jesli chodzi o node module

Jesli chodzi o node module tutaj http://adres/…/user/access to mam tylko:

access content, administer content types, administer nodes, create page content, create story content, edit own page content, edit own story content, edit page content, edit story content, revert revisions, view revisions

ak

Portret użytkownika warna

Który z wyszczególnionych to

Który z wyszczególnionych to Twój rodzaj zawartości „Ogłoszenia admina”? Jaki typ mu wpisałeś?

Portret użytkownika miki

Nie znalazłem takiej funkcjonalności

po prostu z poziomu szablonu strony dałem warunek

if (arg(0) == 'node' && is_numeric(arg(1)) && $node->type != "user" && $node->type != "abo"){
//$output .= " <h2 class=\"title\">". check_plain($node->title) ."</h2><br><br>\n";
   $output .= $node->body;
} else {
//materiały dla zarejestrowanych
if ($node->type == "user" && !$user->roles[2]) $output .= "<hr><h3>dostęp tylko dla zarejestrowanych.<br>  <a href=\"../user/register\">Zarejestruj się</a> Jeżeli już masz swoje konto w serwisie www.airguns.pl <a href=\"../user\">Zaloguj się</a></h3>";
//if ($node->type == "user" && $user->roles[2])    $output .= " <h2 class=\"title\">". check_plain($node->title) ."</h2><br><br>\n";
if ($node->type == "user" &&  $user->roles[2])  $output .= $node->body;
//materiały dla chłopców z ferajny
if ($node->type == "abo" && !$user->roles[4]) $output .= "<hr><h3>dostęp tylko dla Chłopców z Ferajny.<br>  <a href=\"../chlopcy-z-ferajny\">Zobacz, jak zostać jednym z Chłopców z Ferajny</a>".$user->roles[4]."</h3>";
//if ($node->type == "abo" && $user->roles[4])    $output .= " <h2 class=\"title\">". check_plain($node->title) ."</h2><br><br>\n";
if ($node->type == "abo" &&  $user->roles[4])  $output .= $node->body;
//$output .= $node->body;
}

wcześniej trzeba oczywiście wrzucić

global $user;

żeby mieć dostęp do danych zalogowanego usera. W ten sposób można dowolnie manewrować wyświetlaniem zawartości w zależności od grupy albo wręcz od id usera.

Oczywiście to pójście na łatwiznę, bo powinno się zrobić odpowiedni moduł, przyznający uprawnienia do rodzajów zawartości grupom. Ale po prostu mi jest łatwiej napisać parę linijek kodu robiących to, co potrzebuję.

Powyższy kod daje dwa poziomy dostępu – jeden tylko dla zarejestrowanych userów, drugi dla grupy o id = 4 u mnie nazwanej „chłopcy z ferajny”. Próba dostępu przez nieuprawnionego skutkuje odpowiednim komunikatem zamiast właściwej treści.