Pregunta

Hy,

Me pregunto cuál es la mejor manera de crear una sección (back-end) de administración en una aplicación Grails?

Quiero crear una carpeta "admin" en la carpeta "controladores" de Grails para poner todos mis controladores de administración. Pero entonces voy a tener que crear manualmente la asignación de URL para cada controlador de administración?

Ya he generado toda mi SGP interfaz con el comando genernate-all que tiene un Clase de dominio , pero sé cómo puedo generar mi CRUD para mi sección de administración (con la misma clase de dominio). ¿Estoy jodido?

Muchas gracias por sus consejos!

¿Fue útil?

Solución

Mi preferencia para esto es tener una solicitud por separado para admin. Se adhieren a todas sus clases de dominio en un plugin e instalar plug-in que tanto en la aplicación de administración y la appilcation consumidor.

De esta manera, se puede ajustar los controladores contenido de su corazón y no preocuparse por los usuarios finales que golpean ellos. Los servicios compartidos también pueden estar en el dominio de plug-in.

Hay un archivo especial que se puede poner en su griales-app / conf llamada BuildConfig.groovy donde puede especificar los plugins "locales" como el plugin de dominio que son llevados automáticamente en la ruta de clase sin tener que empaquetar / instalar el plugin. Hace que sea muy fácil.

Otros consejos

Se puede crear sus controladores de administración como cualquier otro controlador y utilizar un para asegurarse de que sólo conectado en los usuarios con privilegios que el administrador puede acceder a ellos.

Muy tarde para esto, pero aquí es una manera de que pueda ser útil, al menos para una aplicación más pequeña (estoy usando Grails 2.0):

En 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: Como se puede ver, esto no asegura en modo alguno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top