BUG ABNORME NEL CORE DI DRUPAL con private file system e multilingua

13 contenuti / 0 new
Ultimo contenuto
BUG ABNORME NEL CORE DI DRUPAL con private file system e multilingua

Ciao,

Se devo fare un multilingua ed impostare i file privati come sistema di file system, il modulo locale non riesce a crearmi la cartella languages nella root del filesystem, con i file javascript di cache che servono a drupal per le traduzioni, perchè mi pare di aver capito che non gestisce i file privati. Mi da quindi degli errori e mi rallenta il sito.
Come diavolo può esserci un bug così abnorme nel core di Drupal e nessuno ne parla ???

Ci sarà qualcuno che usa il file system privato e allo stesso tempo ha sviluppato un banale multilingua ? In giro ci sono solo un paio di post sull'argomento tutti datati Drupal 6. La cosa pazzesca è che il problema c'è ancora su Drupal 7 !!!

Tutte le patch (non molte) che ho trovato andavano per D6.
Come fate voi ???

Grazie,

Drupal Version:

Ciao,
se non sono presenti permessi/direttive apache errate mi sembra strano che il cms non riesca a scrivere dentro la cartella privata.. inoltre non capisco perchè tieni la cartella con i js delle traduzioni dentro una cartella privata?
Ho girato comunque un sito test in locale in multilingua (i18n) e cercato di riprodurre il tuo problema ma non ci riesco..nessun errore ne problemi..
Inoltre potresti scriverci eventuali errori che trovi nei log (non solo di drupal ma anche del server web) così da poterti aiutare..

Ciao,

Installazione drupal pulita con abilitato il modulo locale e content translate.
Imposti file system privati con un percorso esterno alla root del progetto.
Imposti il metodo didownload a privato
Inserisci una traduzione navighi un po nel sito e ti salterà fuori un bel errore.
Qui viene descritto l'errore e il titolo è abbastnza inequivocabile. Come vedrai il bug è notificato per drupal 6 ma è presente anche nel 7

https://drupal.org/node/670854

Tutto cio che deve essere scrivibile deve stare fuori dalla root e non deve essere accessibile dal url. Questa è la prima regola d'doro per la sicurezza e perchè nell'azienda per cui lavoro la nostra architettura di progetti viene gestita in questa maniera, anche per agevolare il sistema di backup.

Restoin attesa di un nuovo feedback

il mio feedback è:
ti stai sbagliando funziona tutto benissimo
ho un sito bilingua(italiano-inglese) con tradotte le stringhe e i contenuti,anche se pochi,e non mi da neanche un errore

Scusate ma son ignorante: perchè tenere il js con le traduzioni in un cartella privata??non deve essere in quella pubblica?
(@rolfo85: nel pomeriggio se riesco seguo le tue indicazioni e cerco di riprodurre il problema)

L'errore c'è !

Se seguite le mie indicazioni, non potete NON riprodurre l'errore. (leggete quel cavolo di post che ho "postato")
Sto vedendo di giorno in giorno nuovi bug gestendo il private download method. Ad esempio non gestisce il custom logo caricati dalle impostazioni del template, o ad esempio non mostra l'anteprima di un effetto quando crei uno stile immagine. Quella funzionalità è gestità abbastanza col culo. E sto parlando di moduli del core.

Attendo una vostra prova, seguendo gli step che ho descritto sopra.

Ciao

l'errore non c'è
l'errore lo fai te
avendo impostati il file system su privato drupal ti carica il logo nella cartella privato e non lo fa vedere
io invece l'ho caricato tramite ftp in sites/default/files/imm.jpg
e poi ho indicato il percorso dove sta l'immagine nell'impostazione del tema del logo
hai fatto un pasticcio nell'installazione
la cartella languages non va nella root ma in sites/default/files

In azienda dove lavoro ogni sito non deve avere cartelle scrivibili dentro la root del progetto. È una prassi di sicurezza e di gestne backup. Adesso abbiamo risolto con un simb link, ma è una soluzione sporca.

Quindi se tu lasci il path per i file pubblici "site/default/files è ovvio che funziiona, ma il punto è proprio quello di NON usare i percorsi interni.

Ii voglio usare solo i file privati e gestire tutte le cartelle di cache e caricamento immagini all'esterno della root.

E poi perchè se carico il logo custom da file privati lui mi mette un percorso tipo private://path e poi non me lo mostra ?

Comunque la prova dovete farla impostando solo i file privati e piazzare la cartella files all'esterno del sito. Fuori dalla cartella www che di solito c'è in un server.

Resto in attesa

Ciao

In azienda dove lavoro ogni sito non deve avere cartelle scrivibili dentro la root del progetto. È una prassi di sicurezza e di gestne backup. Adesso abbiamo risolto con un simb link, ma è una soluzione sporca.

Quindi se tu lasci il path per i file pubblici "site/default/files è ovvio che funziiona, ma il punto è proprio quello di NON usare i percorsi interni.

Ii voglio usare solo i file privati e gestire tutte le cartelle di cache e caricamento immagini all'esterno della root.

E poi perchè se carico il logo custom da file privati lui mi mette un percorso tipo private://path e poi non me lo mostra ?

Comunque la prova dovete farla impostando solo i file privati e piazzare la cartella files all'esterno del sito. Fuori dalla cartella www che di solito c'è in un server.

Resto in attesa

Ciao

i files si impostano come privati affinchè non sia possibile accedervi tramite web ,tramite link,il che significa non permettere a nessuno di vederli sul web

E perchè se carico immagini attraverso il field cck image le vedo benissimo ?
E poi che senso avrebbe caricare qualcosa che poi a cui poi non si ha accesso in nessun modo ?

Ha senso se hai delle cose (file,immagini,documenti) che non devono essere letti da chiunque sul web..
impostando poi la gestione dell'accesso alla cartella privata a drupal sarà lui a gestire se puoi o non puoi accedere ai file in base ai permessi (autore, visualizzazione,ecc). Per le immagini controlla il path che si trovi dentro la cartella privata, ma comunque sarebbe errato se vuoi che le immagini siano visibili nel sito..

Per il discorso sicurezza della vostra azienda, la prassi è che solo la cartella del sito non sia scrivibile o anche le sotto cartelle?

comunque credo sia sbagliato pensare di far gestire le cartelle di cache, js e tmp sotto una cartella privata, perchè come detto non sarebbe accessibile al web...

(spero di non dire cazzate perchè non sono un esperto)

Ok ....
Credo di dover fare una bella marcia indietro.

Oggi mi sono letto la documentazione ufficiale per la gestione dei file. I file privati non servono per fare ciò che sto facendo, ma soltanto per non rendere raggiungibile un immagine o un pdf via web. Quindi nela caso di sito con area riservata e scaricamento di documenti sensibili. Con i file pubblici uno indovinando l'URL si scarica il file, con i privati invece e impossibile. Questo è l'unico impiego dei file privati, il cui utilizzo inoltre causa un certo stress al server, in quanto deve ogni volta ricostruire l'URL al file.
Ragionando in questo verso, è ora chiaro che le cartelle di cache non hanno nulla a che vedere con la funzionalità di download privato e che quindi non c'è ragione che funzionino in questo senso.

Quindi diciamo che la via giusta di operare con il caricamento e la gestione dei file, a condizione che non si debba avere necessità particolari di protezione, è il metodo pubblico. Anche perchè è l'unico possibile.

E quindi, ora siamo da capo.
Esiste un modo per impostare path esterni alla root del sito utilizzando il metodo pubblico ?
Qualche modulo ?

o devo rassegnarmi ad utilizzare i simblink ?