Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

usuń aktualność tylko dla administratora

aktualności usuwanie

  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1
ORLONnet

ORLONnet

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 235 postów
  • Strona www:zobacz
  • LokalizacjaCiechanów
Zna ktoś jakąś koncepcję na sprytne ograniczenie możliwości usuwania aktualności dla redaktorów bez ograniczenia tej mozliwości dla administratora

Powiązane pytanie dotyczące widoczności aktualności tylko naszego autorstwa (również nie dotyczy administratora)
Ktoś zna jakiś kruczek?
  • 0

#2
sido

sido

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 118 postów
  • Strona www:zobacz
  • LokalizacjaWarszawa
Chyba dałoby się to zrobić takim sposobem:
w dcaconfig.php wpisz:
if(!BackendUser::getInstance()->isAdmin)
{
   unset( $GLOBALS['TL_DCA']['tl_news']['list']['operations']['delete'] );
}

  • 1
Strony internetowe (Contao, joomla, sklepy internetowe, marketing) i wszystko inne co jest związane z internetem. ;)

#3
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Wystarczy zerknąć na metody checkPermission() np. w tl_news i odpowiednio je dostosować.
  • 0

Codefog - Contao web development


#4
ORLONnet

ORLONnet

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 235 postów
  • Strona www:zobacz
  • LokalizacjaCiechanów

Wystarczy zerknąć na metody checkPermission() np. w tl_news i odpowiednio je dostosować.

Próbuję
Okazuje się że trudniej będzie znaleźć algorytm pokazywania i chowania jednak
Info o pokazywaniu tylko swoich to zbytnie uproszczenie ale może uda mi się załatwić ten problem odpowiednim ustawieniem grup

Dziękuję za podpowiedzi
  • 0

#5
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Podsumowując, aby zablokować opcję usuwania, trzeba zrobić dwie rzeczy:

1. W metodzie checkPermission(), która jest onload_callback, zablokować możliwość usunięcia rekordu:

if (!$this->User->isAdmin && $this->Input->get('act') == 'delete')
{
	$this->redirect('contao/main.php?act=error');
}

2. Do przycisku "delete" dodać button_callback:

public function deleteNews($row, $href, $label, $title, $icon, $attributes)
{
	return ($this->User->isAdmin) ? '<a href="'.$this->addToUrl($href.'&amp;id='.$row['id']).'" title="'.specialchars($title).'"'.$attributes.'>'.$this->generateImage($icon, $label).'</a> ' : $this->generateImage(preg_replace('/\.gif$/i', '_.gif', $icon)).' ';
}

Jeżeli ma być możliwość usuwania rekordów tylko własnego autorstwa, należy to sprawdzić np. w metodzie deleteNews() tak:

public function deleteNews($row, $href, $label, $title, $icon, $attributes)
{
	return ($this->User->isAdmin || $this->User->id == $row['author']) ? '<a href="'.$this->addToUrl($href.'&amp;id='.$row['id']).'" title="'.specialchars($title).'"'.$attributes.'>'.$this->generateImage($icon, $label).'</a> ' : $this->generateImage(preg_replace('/\.gif$/i', '_.gif', $icon)).' ';
}

W przypadku funkcji onload_callback trzeba by było zrobić coś takiego:

$objNews = $this->Database->prepare("SELECT id FROM tl_news WHERE author=? AND id=?")
	->limit(1)
	->execute($this->User->id, $this->Input->get('id'))
 
if (!$objNews->numRows)
{
	$this->redirect('contao/main.php?act=error')
}

  • 1

Codefog - Contao web development


#6
sido

sido

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 118 postów
  • Strona www:zobacz
  • LokalizacjaWarszawa
ORLONnet zerknij na to rozszerzenie: http://www.contao.or...0040019.en.html

"Allowed operations" (create, edit, duplicate, move, delete, view details, hide) can be defined per user group / user for following core modules and extensions:
- Themes, style sheets, front end modules and page layouts
- Page structure, Articles, Content elements
- News
- Newsletters
- Events
- Form generator
- FAQ
- Glossary (glossary, Author leo)
- BackupDatabase+ (BackupDBplus, Author do_while)
- Banner Modul (banner, Author BugBuster)
- Content-Box (boxes, Author markus.milkereit)
- Photoalbums (photoalbums, Author lindesbs)
- Galleries (gallery, Author thyon)
- Taxonomy (taxonomy, Author Xtra)


  • 1
Strony internetowe (Contao, joomla, sklepy internetowe, marketing) i wszystko inne co jest związane z internetem. ;)





Również z jednym lub większą ilością słów kluczowych: aktualności, usuwanie

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych użytkowników