9

ハイ、

Grails アプリで管理者 (バックエンド) セクションを作成する最良の方法は何ですか?

Grails の「コントローラー」フォルダーに「管理」フォルダーを作成して、すべての管理コントローラーを配置したいと考えています。しかし、各管理コントローラの URL マッピングを手動で作成する必要がありますか?

ドメイン クラスgenernate-allを使用するコマンドを使用してすべてのフロントエンド GSP を既に生成しましたが、管理セクションの CRUD を (同じドメイン クラスで) 生成する方法を知っています。私はめちゃくちゃですか?

ヒントをありがとう!

4

3 に答える 3

11

これに対する私の好みは、管理者用に別のアプリケーションを用意することです。すべてのドメイン クラスをプラグインに貼り付け、そのプラグインを管理アプリケーションとコンシューマー アプリケーションの両方にインストールします。

そうすれば、エンド ユーザーがコントローラーを叩く心配をせずに、コントローラーを思いのままに調整できます。共有サービスもドメイン プラグインに含めることができます。

grails-app/conf に配置できる BuildConfig.groovy という特別なファイルがあります。このファイルでは、プラグインをパッケージ化/インストールしなくてもクラスパスに自動的に取り込まれるドメイン プラグインのような「ローカル」プラグインを指定できます。とても簡単です。

于 2009-07-17T00:14:36.627 に答える
2

他のコントローラーと同じように管理コントローラーを作成し、フィルターを使用して、管理者権限を持つログイン ユーザーのみがアクセスできるようにすることができます。

于 2009-07-15T20:22:52.983 に答える
1

これには非常に遅れていますが、少なくとも小規模なアプリケーションの場合 (私は Grails 2.0 を使用しています)、役立つ可能性のある 1 つの方法を次に示します。

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')
  }
}

ご覧のとおり、これはまったく保護されていません。

于 2012-01-27T14:28:35.410 に答える