Biblioteca de roluri foarte simpla, fara nicio autorizare care sa sustina domeniul de aplicare al obiectului resursa.
Sa vedem un exemplu:
Aceasta biblioteca poate fi usor integrata cu orice bijuterie de autentificare (concepe, Authlogic, Clearance) si bijuterie de autorizare * (CanCanCan, autoritate)
* : bijuterie de autorizare care nu ofera o clasa de roluri
Cerinte
- Sine> = 3.2
- ActiveRecord> = 3.2 sau Mongoid> = 3.1
- accepta ruby 2.0 / 1.9.3, JRuby 1.6.0+ (in modul 1.9) si Rubinius 2.0.0dev (in modul 1.9)
- suportul pentru ruby 1.8 a fost renuntat din cauza Mongoid> = 3.0 care accepta doar 1.9 sintaxa hash noua
Instalare
Adaugati acest lucru la Gemfile si executati comanda bundle.
Notiuni de baza
1. Generati un model de rol
Mai intai, creati modelul de rol si fisierul de migrare folosind acest generator:
NB pentru versiunile Rolify anterioare versiunii 3.3, utilizati:
Rolurile si clasele de utilizator sunt implicite. Puteti specifica orice nume de clasa de rol doriti. Acesta este un fisier complet nou, astfel incat orice nume va face treaba. Pentru numele clasei User, probabil ca il veti folosi pe cel furnizat de solutia dvs. de autentificare. rolify adauga doar cateva metode de clasa intr-o clasa de utilizator existenta.
Daca doriti sa utilizati Mongoid in loc de ActiveRecord, trebuie doar sa adaugati argument –orm = mongoid si sariti la pasul # 3
2. Rulati migrarea (necesara numai cand utilizati ActiveRecord)
Sa migram!
3.1 Configurati-va modelul de utilizator
Aceasta bijuterie adauga metoda rolify la clasa dvs. de utilizator. De asemenea, puteti specifica apeluri optionale in clasa User pentru momentul in care sunt adaugate sau eliminate roluri:
Metoda rolify accepta urmatoarele optiuni de apel invers:
- before_add
- after_add
- inainte_de-scoate
- after_remove
Rambursarile Mongoid sunt, de asemenea, acceptate si functioneaza in acelasi mod.
Metoda rolify accepta, de asemenea, optiunea invers_of daca trebuie sa dezambiguati relatia.
3.2 Configurati modelele de resurse
In modelele de resurse pe care doriti sa aplicati roluri, trebuie doar sa adaugati metoda resourcify De exemplu, pe aceasta clasa ActiveRecord:
3.3 Atribuiti rolul implicit
4. Adaugati un rol unui utilizator
Pentru a defini un rol global:
Pentru a defini un rol acoperit de o instanta de resursa:
Pentru a defini un rol cuprins intr-o clasa de resurse:
Eliminati rolul:
Asta este!
5. Interogari de rol
Pentru a verifica daca un utilizator are un rol global:
Pentru a verifica daca un utilizator are un rol pe o instanta de resursa:
porno retro maduras porno casadas españolas
www.maduras.con anal interacial
videos ponos anal maduras españolas
corriendose dentro vieja gorda follando
porno abuelas españolas compilacion mamadas
le pilla pajeandose pilladas de torbes
culos gordos hombres pajeandose
porno fuerte borracha anal
cfnmwave.com cfnmwave.com
porno gay marruecos jovencitas folladoras
porno transexual en español videos porno gay de españoles
follada real follando con las vecinas
masajes porno en español carne de mercado xxx
xxx orgias tetas bailando
intercambio parejas amateur follando en el parque
pelisxxx insesto
paja a desconocido gallega porno
maduros en pajilleros videos madres lesbianas
maduras haciendo pajas metiendo mano en el bus
follando con la abuela jovencitas españolas follando por dinero
find (2) user.add_role: moderator, Forum.first # seteaza un rol pe o instanta de resursa user.has_role? : moderator, Forum.first => user.has_role adevarat? : moderator, Forum.last => false
Pentru a verifica daca un utilizator are un rol cuprins intr-o clasa de resurse:
Un rol global anuleaza cererea de rol de resursa:
6. Interogarea rolurilor resurselor
Incepand de la rolify 3.0, puteti cauta roluri la nivel de instanta sau resurse la nivel de clasa.
Nivelul instantei
Nivelul clasei
Mod strict
Adica devii adevarat doar pe un rol pe care il adaugi manual.
Roluri in cache (pentru a evita problema N + 1)
Aceasta metoda trebuie utilizata cu precautie. Daca nu preincarcati rolurile, has_cached_role? s-ar putea reveni fals. In exemplul de mai sus, s-ar returna false pentru @ user.has_cached_role? (: Membru, Forum), deoarece User.with_role (: admin, Forum) va incarca doar rolurile: admin.
Resurse
- Wiki
- Utilizare: toate comenzile disponibile
- Tutoriale:
- Cum se foloseste rolify cu Devise si CanCanCan
- Folosind rolify cu Devise and Authority
- Tutorial pas cu pas oferit de RailsApps
Faceti upgrade de la versiunile anterioare
Va rugam sa cititi instructiunile de actualizare.
Probleme cunoscute
- Daca utilizati bijuterie Mongoid si / sau mai putin cu sine, va rugam sa cititi acest lucru
- Biblioteca moped (driverul ruby pentru Mongodb folosit de Mongoid) nu accepta inca rubinius 2.2 (vezi https://github.com/mongoid/moped/issues/231)
- Daca utilizati Rails 4 si Mongoid, utilizati Mongoid ~> 4. rolify este testat complet cu Rails 4 si Mongoid 4.
Intrebari sau probleme?
Daca aveti o problema sau o cerere de caracteristica cu / pentru rolify, va rugam sa creati o noua problema pe GitHub specificand timpul de rulare ruby, sinele si versiunile rolify pe care le utilizati si pietrele prezente in fisierul dvs. Gem , sau fortati proiectul si trimiteti o cerere de extragere .
Pentru ca specificatiile sa ruleze, trebuie sa apelati pachetul si apoi sa greblati. Consultati specificatia / README pentru mai multe informatii.








