1 / 42

Vandaag:

Vandaag:. Emails versturen Aspect Oriented Programming in Rails Sessies en login beveiliging Zelf schrijven Plugins: restful_authentication, authlogic,… AJAX: handig pagina’s wijzigen. Emails versturen. Vanuit je rails applicatie. Mail versturen: overzicht. Mail settings

helki
Download Presentation

Vandaag:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vandaag: • Emails versturen • Aspect Oriented Programming in Rails • Sessies en login beveiliging • Zelf schrijven • Plugins: restful_authentication, authlogic,… • AJAX: handig pagina’s wijzigen Wolter Kaper - w.h.kaper@uva.nl

  2. Emails versturen Vanuit je rails applicatie Wolter Kaper - w.h.kaper@uva.nl

  3. Mail versturen: overzicht • Mail settings • Mailer model • Heeft een methode voor elk type mail • U kunt hier uw account activeren • Uw account is geactiveerd • Mailer views • Een map met views voor elk mailer model • In die map: 1 view per email-type • Versturen: in de controller / observers Wolter Kaper - w.h.kaper@uva.nl

  4. Mail SMTP settings Wolter Kaper - w.h.kaper@uva.nl

  5. Mail SMTP settings Wolter Kaper - w.h.kaper@uva.nl

  6. Environment settings Wolter Kaper - w.h.kaper@uva.nl

  7. Mailer model Wolter Kaper - w.h.kaper@uva.nl

  8. Mailer Views Wolter Kaper - w.h.kaper@uva.nl

  9. Mailer Views Wolter Kaper - w.h.kaper@uva.nl

  10. Mailer View Wolter Kaper - w.h.kaper@uva.nl

  11. Mailer model Wolter Kaper - w.h.kaper@uva.nl

  12. Mailer model • Erft van ActionMailer::Base • Heeft methoden voor elk type email • Zet @variabelen klaar • voor gebruik in de mailer views Wolter Kaper - w.h.kaper@uva.nl

  13. En nu versturen… Controller Wat doen? Welk emailtype? Wolter Kaper - w.h.kaper@uva.nl

  14. Filters en Observers Aspect Oriented Programming in Rails Wolter Kaper - w.h.kaper@uva.nl

  15. Aspect Oriented Programming • Op veel punten in je code wil je hetzelfde • Loggen • Controleren of de user is ingelogd • … • Ideaal: • op één plek in je code • Vertellen wat er gebeuren moet • En wanneer het gebeuren moet Wolter Kaper - w.h.kaper@uva.nl

  16. AOP in Rails • Filters • Toepassing: controllers (application_controller) • Bij aanroep van een methode • before / after / around • Observers • Toepassing: model klassen • Bij gebeurtenissen uit de levenscyclus: • Initialize, validation, create, save, destroy, find • before / after Wolter Kaper - w.h.kaper@uva.nl

  17. Filters – login beveiliging Aspect Oriented Programming Wolter Kaper - w.h.kaper@uva.nl

  18. Filters – login beveiliging Wolter Kaper - w.h.kaper@uva.nl

  19. Filters – login beveiliging Wolter Kaper - w.h.kaper@uva.nl

  20. Filters • before_filter :login_required, \ only=>[:edit, :delete] • before_filter :login_required, \ except=>[:show, :index] Wolter Kaper - w.h.kaper@uva.nl

  21. Observers Een observer klasse: • Observeert 1 of meer model klassen • Vertelt wat er gebeuren moet • voor / na • gebeurtenissen: • Initialize, validation, create, save, destroy, find Wolter Kaper - w.h.kaper@uva.nl

  22. Observer klasse Wolter Kaper - w.h.kaper@uva.nl

  23. Observer klasse Wolter Kaper - w.h.kaper@uva.nl

  24. Observers - configuratie • Observers staan geheel op zichzelf • Nergens een verwijzing, behalve…: Wolter Kaper - w.h.kaper@uva.nl

  25. Observer klasse • Erft van ActiveRecord::Observer • Observeert 1 of meer model klassen • Methoden voor elke gebeurtenis • Configuratie: environment.rb Wolter Kaper - w.h.kaper@uva.nl

  26. Authenticatie met wachtwoord Wolter Kaper - w.h.kaper@uva.nl

  27. Zelf schrijven / Rails plugin • Er zijn goede rails plugins • restful_authentication • authlogic • Zelf schrijven is niet moeilijk Wolter Kaper - w.h.kaper@uva.nl

  28. Zelf schrijven • scaffold User • model, controller, views, db-tabel • attributen: loginnaam, wachtwoord, ... • sessions_controller • new actie: presenteer login form • create actie: start sessie als login correct • User.find(:conditions=>[‘loginnaam=? AND wachtwoord=?’, loginnaam, wachtwoord]) • session[:loginnaam]=loginnaam • destroy actie • session[:loginnaam]=nil Wolter Kaper - w.h.kaper@uva.nl

  29. Zelf schrijven 2 • Controllers beveiligen met “filter” Zet deze methode evt. in ApplicationController(application_controller.rb) Maak hem dan protected Wolter Kaper - w.h.kaper@uva.nl

  30. restful_authentication plugin • Kun je gebruiken • Alle plugins die je vindt kun je gebruken • Mits je ze vermeldt in je documentatie • Kun je bekijken • Mooie voorbeeldcode • Sommige zaken diep weggestopt: de sessie • Wat heeft hij extra? • Wachtwoord encryptie met “site key” • Registratie pagina, registratie email, ... Wolter Kaper - w.h.kaper@uva.nl

  31. Installeren • git client installeren • http://code.google.com/p/msysgit/downloads/list • cd myrailsapp • git clone git://github.com/technoweenie/restful-authentication.git vendor/plugins/restful_authentication • check myrailsapp/vendor/plugins • ruby script/generate authenticated User Session --include-activation Wolter Kaper - w.h.kaper@uva.nl

  32. Wat maakt deze generator? • Modellen: • users • self.authenticate(loginnaam, wachtwoord) • Controllers: • users_controller • new • create • sessions_controller • new • create • destroy Wolter Kaper - w.h.kaper@uva.nl

  33. Wat maakt-ie...? • Views • users • _user_bar.html.erb (“u bent ingelogd als”) • new.html.erb (registratieform) • sessions • new.html.erb (loginform) • Helpers • UsersHelper Wolter Kaper - w.h.kaper@uva.nl

  34. Wat maakt-ie? • config/routes.rb • routes toegevoegd: /signup, /register, /login, /logout, zelf toevoegen: /activate • map.resources: users, sessions • config/initializers/site-keys.rb • een geheime sleutel die gebruikt wordt om wachtwoorden te beveiligen • wijzig de sleutel => alle wachtwoorden onbruikbaar! • toon sleutel aan anderen=> beveiliging weg Wolter Kaper - w.h.kaper@uva.nl

  35. Wat maakt-ie? • db/migrations • migratie om de users tabel te creëren • Toevoegen aan routes.rb: • Map.activate ‘/activate/:activation_code’,:controller=>’users’,:action=>’activate’,:activation_code=>nil • Mail instellingen Wolter Kaper - w.h.kaper@uva.nl

  36. users tabel Wolter Kaper - w.h.kaper@uva.nl

  37. user model Wolter Kaper - w.h.kaper@uva.nl

  38. user model - vervolg • Authenticate is een klasse-methode Wolter Kaper - w.h.kaper@uva.nl

  39. users_controller Wolter Kaper - w.h.kaper@uva.nl

  40. sessions_controller Wolter Kaper - w.h.kaper@uva.nl

  41. sessions_controller (vervolg) Wolter Kaper - w.h.kaper@uva.nl

  42. Nu je controllers beveiligen • application_controller.rb • include AuthenticatedSystem • (nu kan dit zinnetje weg uit userscontroller en sessionscontroller) • in je andere controllers: • before_filter :login_required Wolter Kaper - w.h.kaper@uva.nl

More Related