Szeretnék egy adatbázis rendszert kiépíteni. Első gondolatom a klasszikus MySQL + PHP + Apache triumvirátus volt. De itt a Drupal, amelynek sok funkciója csábít. Választanom kell?
1. gondom: a Drupal rendszer egy külön felhasználói néven keresztül használja a MySQL-t. Ezen keresztül lép be. Ha a MySQL-ben elkészített adattábláimat is hozzáférhetővé teszem a Drupal rendszer felé, az biztonsági kérdéseket vet fel. Viszont én azt szeretném, hogy csak bizonyos felhasználók férjenek hozzá az adattáblákban lévő adatokhoz.
2. gondom: Azt szeretném, hogy aki bejelentkezik a Drupalon keresztül egy felhasználóként, ne kelljen külön bejelentkeznie a MySQL-be is az adatbázis használatához.
3. gondom: alternatíva-e egyáltalán a CCK + Wiews modul pl. arra, hogy ezeken keresztül fejlesszem ki az adatbázisomat, és ne a MySQL-en és PHP-n keresztül?
Vmit keversz. Ha valaki
Vmit keversz. Ha valaki bejelentkezik, akkor nem kap új mysql felhasználót és jelszót. A Drupal a táblákhoz a Drupal userével fér hozzá. A Drupal felhasználók (remélhetőleg) nem tudnak SQL utasításokat végrehajtani. A MySQL egy backend, ami kiszolgálja a Drupalt, a hozzáírt modulokat is. A CCK és Views épít a Drupal által nyújtott adatbázis rétegre, így azok nem különülnek el.
Aries
http://aries.mindworks.hu
Ez világos
De épp ez a gondjaim lényege. :) Azt szeretném, hogy ellenőrzött körülmények között (egyes felhasználó jogosultságok között) kapjon hozzáférést adatbeviteli űrlapokhoz, SQL lekérdezésekhez - tehát használhassa az adatbázisom.
Vagy elkészítem az egészet a Drupal égisze alatt, ha a CCK alkalmas rá.
Egyre jobban hajlok viszont a külön MySQL adatbázis felé a függetlenség, gyorsaság és a későbbi mobilitás miatt. Most már csak az a gond, az egységes felhasználó kezelést hogy oldjam meg. Utána is nézek, hogy a Drupalhoz van-e LDAP kliens...
hozzáférés szabályozás
Maga a Drupal, ahogy Aries is mondja, 1 db adatbázis felhasználó segítségével kapcsolódik a MySQL-hez. Azt, hogy az adatbázisban tárolt mely adatokhoz ki férhet hozzá, nem a MySQL, hanem maga a Drupal szabályozza részben az alapcsomagba épített hozzáférés szabályozás segítségével, részben nagyszámú kiegészítő modullal – lásd a User access/authentication kategóriát a Drupal.org modulrészlegében.
Például itt a Drupal.hu-n ha csak egyszerű regisztrált felhasználó vagy, akkor ezt látod a navigációs menüben:
Ha viszont a szerkesztőség tagja vagy, akkor belépés után megjelenik másik 50 menüpont, pl. a Kategóriákat szerkesztő űrlap (ha erre rákattintasz, remélhetőleg "Hozzáférés megtagadva" üzenetet fogsz kapni).
Egyes tartalmakra (node-ok), vagy tartalmak csoportjaira szintén be tudsz állítani hozzáférési korlátozásokat.
PHP vs Drupal
Mivel a Drupal-t is PHP-ban fejlesztik, így szerencsére nem áll messze egymástól a két dolog. :-)
Alapvetően az a probléma, hogy nem tudjuk, hogy igazából te mit szeretnél megvalósítani, így nem tudnak a kollégák egzakt választ adni. Ha kicsivel többet tudnánk, akkor kiderülne, hogy egyáltalán kell-e magadnak valamit is fejleszteni, vagy a már meglévő modulokból tudsz építkezni, esetleg tényleg jobb választás az egészet PHP-ban megoldani, minden nemű kötöttség nélkül. Ahhoz, hogy te is dönteni tudj, mindenképpen át kell olvasni a Drupal terminológiáját és alapvető működését. De hogy a kérdéseidre is válaszoljak.
1., Bár már előttem is leírták:
- van MySQL hozzáférés
- Drupal hozzáférés
- Felhasználói hozzáférés szabályozás
A MySQL hozzáférés egy MySQL user/password páros, a megfelelő helyről a megfelelő porton keresztül elérheti a szervert.
A Drupal hozzáférés user/password páros egy auhentikált user hozzáférést biztosít a Drupal rendszerhez.
A Felhasználói hozzáférés szabályozás a Drupal rendszerben lévő modulokhoz való hozzáférés szabályozását jelenti.
Alap esetben csoportokat lehet létrehozni és csoportokra lehet megadni/megvonni az egyes hozzáférési lehetőségeket.
2., A Drupal éppen a mobilitás és flexibilitás érdekében, egy egységes adatbázis hozzáférési réteget (interface-t) használ az adatbázis műveletek elvégzéséhez, melyek végrehajtáskor a konfigurációban megadott (a te esetedben MySQL) adatbázis rendszernek megfelelő SQL utasításokká alakulnak át és futnak le. Amikor valaki bejelentkezik a Drupal-ba, akkor ezáltal kvázi "hozzáfér" az adatbázishoz is, de ez nem közvetlen módon történik.
3., Nem tudni, konkrétan mit szeretnél fejleszteni. Ami elmondható, hogy a CCK-vel lehetőséged van újabb tartalom típusok létrehozására, tehát a meglévő page vagy story-tól eltérő tartalmat is be tudsz vinni, míg a Views - mint a neve is mutatja -, egyedi tartalom megjelenítést tesz lehetővé (amit még később sminkkel befolyásolhatsz).
4., Kérdezted az LDAP authentikációt: az LDAP Integration modul nagyon jó, mert miután bekonfiguráltad a modult, azután nem kell létrehoznod a usereket, illetve nekik sem kell regisztrálni magukat, hanem nemes egyszerűséggel csak bejelentkeznek az LDAP user/password párossal és a Drupal automatikusan létrehozza a "user" nevű felhasználói accountot. Három részből áll ldapauth, ldapdata, ldapgroups. Az első modul az authentikálást biztosítja, a másik hogy milyen adatokat vegyen át az LDAP-ból, míg a harmadiknál arra is van lehetőség, hogy az LDAP-beli csoport tagságokat is leképezze a Drupalba.
Üdv: Webappz
Páldi Zoltán