Satura rādītājs
filtri Tie ir instrumenti Sliedes kas ļauj pārtvert zvanus uz metodēm un darbībām, ļaujot mums pievienot savas metodes vai nu pirms, tā laikā vai pēc tam, lai mēs varētu kontrolēt lietojumprogrammas plūsmu pēc saviem ieskatiem, lai izpildītu savas funkcijas. Šajā posmā mēs izmantosim pirms filtra lai pārtvertu zvanus uz mūsu darbībām, tādā veidā mēs varam pārbaudīt sesiju un zināt, vai lietotājs ir pieteicies, ja nē, tad mēs tos novirzām uz vietu, kur esam vienojušies. Mēs ievietosim šo metodi mūsu lietojumprogrammu kontrollerī, jo tā ir bāze, un tādā veidā tā būs pieejama visai lietojumprogrammai.
Apskatīsim mums pieejamo kodu:
def autorizēt, ja vien sesija [: user_id] flash [: paziņojums] = "Lūdzu, piesakieties" redirect_to (: controller => "login" ,: action => "login") beigas beigas
Tā kā mēs redzam, ka loģika ir diezgan vienkārša, mēs izmantojam pašas Rubijas nosacījumu, kas ir ja vien, tas ļauj nosacīt, ka, ja vien nosacījums nav izpildīts, bloka kods tiek izpildīts. Tātad, ja vien sesijā nav lietotāja ID, mēs viņu novirzīsim un lūgsim viņam autentificēties lietojumprogrammā.
Tagad mūsu administratora kontrollerī mēs filtrēsim un lūgsim lietotājus autentificēties:
klases AdminController <ApplicationController before_filter: autorizēt
Un savā pieteikšanās kontrollerī mēs arī darām kaut ko līdzīgu, tikai mēs pievienosim izņēmumu no pieteikšanās darbības, kas mūs interesē un kuru var redzēt ikviens neautentificēts lietotājs:
klases LoginController: pieteikšanās
Ja neesam pieteicies, piekļūstot lietojumprogrammas administratīvajai lapai, mums vajadzētu redzēt kaut ko līdzīgu:
Apskatīsim kodu:
before_destroy: dont_destroy_dave def dont_destroy_dave paaugstināt "Nevar iznīcināt deivu", ja self.name == 'dave' end
Pēc tam mūsu dzēšanas darbībā mēs uzņemsim ziņojumu un parādīsim to, apskatīsim darbības kodu:
def delete_user id = parametri [: id] if id && user = User.find (id) starts user.destroy flash [: paziņojums] = "Lietotājs # {lietotājvārds} izdzēsts" glābšanas zibspuldze [: paziņojums] = "Var" t izdzēst šo lietotāja "end end redirect_to (: action =>: list_users) beigas
Ar to mēs pabeidzam mūsu apmācību par piekļuves ierobežošanu mūsu lietojumprogrammai, ir svarīgi aptvert visas iespējas, lai neļautu nesankcionētiem lietotājiem redzēt vai mainīt mūsu administratīvo daļu, lai izvairītos no turpmākām galvassāpēm un drošības problēmām, kas padarīs mūsu lietojumprogrammu nedrošu un nestabilu.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu