Преглед садржаја
Тхе филтери Они су алати за Раилс који нам омогућавају да пресрећемо позиве методама и радњама, омогућавајући нам да додамо своје методе било пре, током или после, тако да можемо да контролишемо ток апликације по нашем нахођењу како бисмо испунили своје функционалности. У овој фази ћемо користити пре филтера да бисмо пресрели позиве до наших радњи, на овај начин можемо да верификујемо сесију и знамо да ли је корисник пријављен, ако не, онда их преусмеравамо тамо где смо договорили. Ову методу ћемо поставити у наш контролер апликације јер је она основа и на тај начин ће бити доступна за целу апликацију.
Погледајмо код који имамо за њега:
деф ауторизирај осим ако сесија [: усер_ид] фласх [: нотице] = "Молимо пријавите се" редирецт_то (: цонтроллер => "логин" ,: ацтион => "логин") енд енд
Како видимо да је логика иза овога прилично једноставна, користимо Рубиин услов који је осим ако, ово нам омогућава да условимо да се, осим ако услов није испуњен, изврши шифра блока. Дакле, ако немамо ИД корисника у сесији, преусмерићемо га и замолити га да се аутентификује у апликацији.
Сада ћемо у нашем администраторском контролеру филтрирати и тражити од корисника да се аутентификују:
класа АдминЦонтроллер <АпплицатионЦонтроллер бефоре_филтер: ауторизирајте
И у нашем контролеру за пријаву такође радимо нешто слично, само што ћемо додати изузетак акције пријављивања која нас занима, а коју може видети сваки неовлашћени корисник:
класе ЛогинЦонтроллер: логин
Ако нисмо пријављени, требало би да видимо овако нешто приликом приступа административној страници апликације:
Да видимо код:
бефоре_дестрои: донт_дестрои_даве деф донт_дестрои_даве подићи "Не могу уништити даве" ако селф.наме == 'даве' заврши
Затим ћемо у нашој радњи брисања ухватити поруку и приказати је, да видимо код акције:
деф делете_усер ид = парамс [: ид] иф ид && усер = Усер.финд (ид) старт усер.дестрои фласх [: нотице] = "Корисник # {усер.наме} обрисан" спасилачки фласх [: нотице] = "Цан ' т избрисати тог корисника "енд енд редирецт_то (: ацтион =>: лист_усерс) енд
Овим завршавамо наш водич о ограничавању приступа нашој апликацији, важно је покрити све могућности како бисмо спријечили неовлаштене кориснике да виде или измијене наш административни дио, како бисмо избјегли будуће главобоље и сигурносне проблеме који ће нашу апликацију учинити несигурном и нестабилном.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен