12.01.2014 Aufrufe

Dokumentation zum Massive Multiplayer Online Game - Universität ...

Dokumentation zum Massive Multiplayer Online Game - Universität ...

Dokumentation zum Massive Multiplayer Online Game - Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!