2009-07-15 9 views
9

Hy,modo migliore per creare una sezione Amministrazione in Grails

mi chiedo qual è il modo migliore per creare una sezione (backend) Admin in un'applicazione Grails?

Voglio creare una cartella "Admin" nella cartella "controller" di Grails per mettere tutti i miei controller di amministrazione. Ma poi dovrò creare manualmente la mappatura degli URL per ciascun controller Admin?

ho già generato tutta la mia frontend SPG con il comando genernate-all che prende una classe dominio ma sa come posso generare il mio CRUD per la mia sezione di amministrazione (con la stessa classe di dominio). Sono fregato?

Grazie mille per i suggerimenti!

risposta

11

La mia preferenza per questo è di avere un'applicazione separata per l'amministratore. Mantieni tutte le tue classi di dominio in un plug-in e installa quel plug-in sia nell'applicazione di amministrazione che nell'application del consumatore.

In questo modo, è possibile modificare i controller per i contenuti del tuo cuore e non preoccuparti per gli utenti finali che li colpiscono. I servizi condivisi possono anche essere nel plug-in del dominio.

C'è un file speciale che puoi inserire nella tua app/conf di grails chiamata BuildConfig.groovy dove puoi specificare plugin "locali" come il plugin di dominio che vengono automaticamente portati nel classpath senza dover installare/installare il plugin . Lo rende super facile.

+0

Grazie mille! Mi piace il modo in cui dividi Admin e Front. Riguardo al file "BuildConfig.groovy", devo aggiungere la proprietà "grails.project.plugins.dir" per portare le classi del dominio del plugin al classpath dell'app Grails? –

+0

No, fai solo sapere dove si trova il plugin sul tuo disco locale. Ecco i contenuti del mio grails-app/conf/BuildConfig.groovy in un'applicazione in cui ho installato il mio plugin "dominio": grails.plugin.location.domain = "../domain" Automaticamente aggiunge tutte le cose necessarie al mio classpath da quel plugin di dominio quando si esegue/packaging/warring l'app. (la formattazione strana sui commenti si spera che abbia senso) –

+0

Oh ok ho capito! Grazie mille per il vostro aiuto! –

2

È possibile creare i controller di amministrazione come qualsiasi altro controller e utilizzare uno filter per assicurarsi che solo gli utenti registrati con i privilegi di amministratore possano accedervi.

+0

Ok, grazie funziona bene se creo manualmente un secondo controller, ma come faccio a generare 2 controller da 1 classe di dominio? (qualcosa come/CommentController e/admin/CommentController dalla mia classe Comment.groovy?) –

+0

+1 Bello, proprio quello che stavo cercando :). – helpermethod

1

molto tardi per questo, ma qui è un modo che potrebbe essere utile, almeno per un'applicazione più piccola (sto usando Grails 2.0):

In conf/UrlMappings.groovy:

class UrlMappings { 
    static mappings = { 
    "/admin/$controller/$action?/$id?"{ constraints { // apply constraints here 
     } } 
    '/admin' (controller: 'yourMainController', action: 'list') 
    '/' (controller: 'public', action:'index') 
    // For the PublicController to handle *all* other requests (like /foo/bar/): 
    // '/**' (controller: 'public', action:'index') 
    "500"(view:'/error') 
    } 
} 

Nota Come potete vedere, questo non è protetto in alcun modo.

Problemi correlati