Andrise programmeerimisalane WIKI

Google kasutajad

Google App Engine pakub arendajatele mugavat kasutajate haldust - Google Accounts süsteemi läbi, nii ei ole vaja ise kogu vajalikku infrastruktuuri üleval pidada ja saab kohe aplikatsiooni põhifunktsionaalsust arendama hakata. Sama kasutajanime ja parooliga millega siseneb kasutaja näiteks oma GMail postkasti või kirjutab Blogger teenuses blogpostitusi, saab ta sisse logida ka suvalisse Google App Engine platvormil paiknevasse aplikatsiooni.

Google kontode kasutamiseks tuleb sisse laadida users teek.

from google.appengine.api import users

Programmi käigus saab kontrollida sisseloginud kasutaja staatust käsuga users.get_current_user(), sellega saab kätte sisseloginud kasutajaga seotud info või False, kui kasutaja pole sisse logitud.

user = users.get_current_user()

user objekt koosneb kolmest funktsioonist, mis tagastavad endaga seotud info.

  • user.nickname() tagastab kasutaja hüüdnime. Üsna tihti on see kasutajatel seadmata ja sellisel juhul on välja väärtuseks kasutaja e-posti aadressi esimene osa (enne @ märki)
  • user.email() tagastab kasutaja e-posti aadressi
  • user.user_id() tagastab kasutaja ID stringi kujul. Juhul kui kasutaja muudab oma e-posti aadressi, jääb ID samaks
user = users.get_current_user()
if user:
  self.response.out.write("Sinu e-posti aadress on %s" % user.email())
else
  self.response.out.write("Pole sisse logitud")

Kasutaja sisselogimiseks ja väljalogimiseks saab users teegi abil genereerida vajalikud aadressid, millele suunates näidataksegi sisselogimisvormi või logitakse kasutaja välja.

  • users.create_login_url(sihtkoha_url) - tekitab sisselogimisvormi aadressi, millele kasutaja suunates avaneb sisselogimisvorm. sihtkoha_url on aadress, kuhu suunatakse kasutaja peale edukat sisselogimist.


Joonis 3. Google Konto poolt genereeritud sisselogimisvorm

  • create_logout_url(sihtkoha_url) - genereerib väljalogimisaadressi, kui kasutaja sellele aadressile suunata, logitakse kasutaja välja ning suunatakse sihtkoha_url aadressile.

Täiendavalt saab veel kontrollida, kas sisseloginud kasutaja näol on tegu aplikatsiooni administraatoriga. Administraatorid on kõik kasutajad, kes on lisatud aplikatsiooni administratsiooni lehel aplikatsiooni arendajateks. Administraatori staatust saab kontrollida funktsiooniga users.is_current_user_admin().

if users.is_current_user_admin():
  self.response.out.write("oled admin")
else:
  self.response.out.write("ei ole admin")