D7 profil mezők láthatósága

TommyChris képe

Az elmúlt napokat az alábbi kérdéskör megválaszolásával töltöttem, ám nem jutottam igazán sehova, ezért fordulnék az itteni emberkékhez.

Alapvető kérdés az az lenne, hogy miként lehet megoldani, hogy a felhasználó a saját adatairól eldöntse, hogy milyen láthatósági szinttel rendelkezzen, ki láthassa, ki kereshesse. Az oldal Drupal 7 alapú, és nem akarok visszatérni a régi Profile modulra, a D7-ben bennelevő Field modult és FAPI alapot szeretnék használni.

Alapvetően 2 különböző célban gondolkozom, az egyik
- Az oldalon vannak OG által megvalósított csoportok. Minden profilmező elé lehetne tenni egy legördülő listát, ami 1-1 adatról azt állítja be, hogy Privát legyen (tehát csak adminok látják), Csoporttagok számára látható (tehát, ha valakivel közös groupban van, akkor láthatja, egyébként nem), illetve a teljesen Publikus. Ez irtó macera, az oldal D6 alatti verziójában úgy készítettük el, hogy fogtuk a Profile modult, lemásoltuk saját modulnak, és belehákoltunk. Csúnya, lassú, macerás kereshetőség. Ha ezt meg lehetne valahogy szépen oldani D7 alatt az lenne a legjobb.
- Másik lehetőség, hogy hagyjuk az OG-t a csudába, és csak annyi legyen állítható, hogy az adott mező (pl. teljes név, telefonszám, cím, stb...) bárki számára látható legyen vagy csak az adminok számára. Kiegyeznék ezzel is.

Kipróbáltam jó pár modult. Profile2-nél az adminnak kell beállítania a field-re nézve ezt, a user nem tudja felülbírálni. A profile_privacy a régi profile modulon alapul, azt is engedélyezte, azt meg nem akarom. CCK_privacy-ból nincs D7-es verzió ...

Eszembe jutott még, hogy minden egyes profil mezőhöz felveszek magamtól egy olyan mezőt, ami egy legördülő lista a kívánt dolgokkal, és itt ki lehet választani. Ezt megdizájnolni sem túl egyszerű, de ami ennél macerásabb, hogy az itt beállított értéket utána valahol használnia is kéne a Drupal jogosultságkeresésének.

Van esetleg bárkinek bárminemű ötlete, hogy ezt miként lehetne megcsinálni?

Drupal verzió: 
pp képe

Nem tudom, hogy van-e ilyen modul, de egy kis form alter és a hook_field_access segítségével bármi megoldható. (de kétlem, hogy ne lenne ilyen modul)

0
0
TommyChris képe

Igen, ettől féltem. Komolyan még senkinek nem jutott eszébe, hogy a profilmezőkre az adott profil tulajdonosa akarjon jogosultságot állítani? :(

0
0
szantog képe

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

TommyChris képe

Sajna, most nem fogok a közért (sic!) tenni, mert inkább egy saját modul írását valósítom meg.

A legnagyobb gondom, hogy a fenti modulban az OG támogatás nincs benne, az enyémben meg benne lesz :) Vagy legalábbis amennyire utánaolvastam ma, a hook_field_permission() megkapja mindkét entitást (aki nézi, és akinek az adatait nézi), így tudok saját függvényt írni, ami lekérdezi mindkettő csoportjait, s ha van egyezés akkor TRUE-t ad. Azért is hákolás, mert van két kiemelt csoport, s, ha csak annál van egyezés, akkor azt FALSE-nak kell tekinteni. S ezen két csoport id-ja, hard kódolva lesz a modulba.

Az UI-t meg így sikerült elképzelni (http://min.us/mvglXvH). Valójában egy Lista típusú field, aminek a CSS-e van meghákolva, hogy odakerüljön, ahova (viszont a listában emiatt közvetlenül fölötte kell lennie). Úgyhogy már csak a kétszeres margin-top-tól kell megszabadulnom :)

0
0