Dokumentation zum Massive Multiplayer Online Game - Universität ...
Dokumentation zum Massive Multiplayer Online Game - Universität ...
Dokumentation zum Massive Multiplayer Online Game - Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
5. Spieler, Allianzen und Nachrichten<br />
55<br />
before_filter :authenticate_user!<br />
in einem beliebigen Controller dazu, dass die komplette Controllerfunktionalität nur dem registrierten und<br />
authentifizierten Nutzer zugänglich ist. Außerdem können in den Views und den Controllern nützliche Methoden<br />
und Helper benutzt werden:<br />
• current_user: liefert das Objekt des Users zurück, der gerade einen bestimmten Controller oder eine<br />
bestimmte View benutzt.<br />
• user_signed_in?: überprüft, ob der Nutzer eingeloggt ist<br />
• user_session: gibt die momentane Nutzersession zurück.<br />
Implementierung<br />
Bevor wir mit der Implementierung beginnen konnten, mussten wir uns mit Devise vertraut machen und haben<br />
uns mit Hilfe der beiliegenden README-Datei eingearbeitet.<br />
Konfiguration<br />
Als erstes mussten wir den zugehörigen Gem in das Gemfile eintragen<br />
gem 'devise'<br />
und danach ein<br />
bundle install<br />
im Projektordner ausführen. Der nächste Schritt war das installieren von Devise in das aktuelle Projekt. Hierzu<br />
musste folgendes im Projektordner ausgeführt werden:<br />
rails generate devise:install<br />
Dieses Kommando erstellt einen Initializer namens devise.rb in /config/initializers. Dieser enthält alle<br />
Konfigurationsoptionen für Devise, die vorgenommen werden müssen.<br />
Innerhalb der devise.rb mussten wir einige Änderungen vornehmen, um der Aufgenstellung gerecht zu werden.<br />
So war von uns verlangt, dass sich der Nutzer über seinen Usernamen einloggen kann. Standardmäßig benutzt<br />
das Framework die E-Mail-Adresse.<br />
config.authentication_keys = [ :username ]<br />
Nutzernamen und E-Mails sollten also einzigartig sein. Damit sich Nutzer nicht mit dem gleichen Usernamen<br />
oder der gleichen E-Mail in unterschiedlicher Schreibweise anmelden konnten, musste folgende Konfiguration<br />
vorgenommen werden:<br />
config.case_insensitive_keys = [ :email, :username ]<br />
Außerdem dürfen weder in E-Mail noch im Username Whitespaces vorhanden sein:<br />
config.strip_whitespace_keys = [ :email, :username ]<br />
Alle anderen Standardeinstellungen haben wir als akzeptabel eingestuft.<br />
Als nächstes wurde das User-Scaffold mit Hilfe des Devise-Generators erstellt:<br />
rails generate devise User username:string money:integer score:integer last_activity:date<br />
Model<br />
Im folgenden werde ich nur die Methoden im User-Model beschreiben, die von unserer Seite aus für die<br />
Funktionalität des Systemes notwendig sind. Im weiteren Verlauf des Praktikums sind sehr viele Getter- und<br />
Setter-Methoden von anderen Gruppen hinzugefügt worden.<br />
Als erstes mussten wir in der user.rb die oben erwähnten Module aktivieren.