Puncte:0

Cum să acordați acces programatic la fișierele private?

drapel us

Lucram cu ideea că aș putea folosi hook_file_download pentru a acorda acces la fișierele private; dar se pare că acest cârlig poate fi folosit doar pentru a restricționa accesul la fișiere, nu pentru a acorda acces.

Am văzut sugestii de alte cârlige precum file_access și file_access_alter; dar niciuna dintre acestea nu mai există.

Kevin avatar
drapel in
Dacă nu returnați -1 pentru diferite „verificări” în hook_file_download, nu este, practic, acordarea accesului? `Dacă utilizatorul nu are permisiunea de a accesa fișierul, returnați -1. Dacă utilizatorul are permisiunea, returnează o matrice cu anteturile corespunzătoare. `
liquidcms avatar
drapel us
La prima ta întrebare, nu, nu cum funcționează. Toate modulele returnează rezultate pentru a construi matrice, care este verificată de funcția de descărcare din core. Dacă orice modul (cum ar fi modulul de fișier de bază) returnează un -1; atunci nu contează ce returnează modulul meu personalizat, deoarece există deja un -1 în matrice și asta determină accesul refuzat. Deci, așa cum am spus mai sus, pot limita accesul în codul meu; dar nu pot acorda.
drapel cn
Da, îl puteți folosi pentru a acorda acces (după antete, așa cum a menționat Kevin), dar nu îl puteți folosi pentru a ignora/înlocui decizia explicită a altui modul de a refuza accesul. Amintiți-vă că modulele pot returna `NULL` dacă nu au niciun interes în fișier, așa că orice decizie explicită de a refuza ar trebui respectată implicit. Dacă nu aveți încredere sau nu vă puteți baza pe procesul decizional al celuilalt modul, îl puteți scurta prin implementarea hook_module_implements_alter pentru a elimina complet implementarea hook_file_download din modul.
liquidcms avatar
drapel us
Nu puteți utiliza în mod explicit acest cârlig pentru a acorda acces (cum am spus). Negarea are prioritate. Acestea fiind spuse, cred că greșesc. Accesul la fișiere private este determinat de accesul entității la care este atașat și aceasta este problema. De ce dorește clientul meu să permită accesul la fișier și nu la entitatea la care este atașat? Vom rezolva această cerință. Dar, dacă într-adevăr acesta este cazul, există un modul care permite accesul prin rol la fișierele private (dar din motivele menționate mai sus; probabil că nu funcționează). Acest lucru s-ar deschide către mai mulți oameni decât s-ar dori; dar apoi cârlig poate fi folosit pentru a limita.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.