intro wiki download guestbook contact

Artikel mit Benutzer verknüpfen

So, abschließend wollen wir nur noch eingeloggten Benutzern erlauben, neue Artikel zu erstellen, und des weiteren sollen die Artikeln nur noch von den Benutzern, welche sie auch erstellt haben, editiert und gelöscht werden können.

Zum Punkt Nummer 1. Zuerst erstellen wir die create_check_access Methode in der Root Page:


sub create_check_access { session->user }

Und dann ändern wir noch die create Action (ebenfalls in der Root Page) insoweit, daß der aktuelle Benutzer mit dem Artikel verknüpft wird:


sub create :Action {
   my $self = shift;

   if (request->is_post) {
      my $article = Wiki::Model::Article->new;
      $article->title(request->param('title'));
      $article->text(request->param('text'));
      $article->create_time(date('now'));
      $article->modify_time(date('now'));
      $article->user(session->user);
      $article->save();
      response->message('Artikel erstellt');
      response->redirect($self->href);
   }
}

Hier ist einfach nur die Zeile


$article->user(session->user);

dazugekommen... und das wars auch schon wieder.

Dann zu Punkt nummer 2. Hier erstellen wir wiederrum eine edit_check_access und delete_check_access Funktion in der Article Page.


sub edit_check_access {
   my $self = shift;
   
   return 0 unless session->user;
   return (session->user->id eq $self->article->user->id);
}

sub delete_check_access { shift->edit_check_access }

Tja.. und schon sind wir fertig.

zurück