0

Drupal サイト内のページで現在実行されている小さなバックボーン アプリケーションがあります。現在、バックボーン アプリケーションは認証なしのページで提供されており、すべてのユーザーがそれを見ることができます。

ユーザーが認証されている場合にのみ表示される別のページで、ほぼ同じバックボーン アプリケーションを使用したいと考えています。ただし、これらの認証済みユーザー向けにいくつかの高度な機能を追加したいと考えています。

問題は、2 つの別々の Backbone アプリを使用するのではなく、2 種類のユーザーに同じ Backbone コードを使用したいということです。これをどのように行うことをお勧めしますか?

私はこの種のことを素朴に考えています:

SearchView = Backbone.View.extend({
   render: function() { 
      if (isAdvanced) { 
        //render advanced search options in template
      }

   },
   runSearch: function() { 
      if (isAdvanced) {
       // handle advanced options for client-side search
   }
});

問題は、JavaScript コードが明らかに認証されていないユーザーに表示されることです。isAdvancedコンソールで設定して、その方法で高度な機能のロックを解除できると思いますか?

(認証プロセス自体は Drupal によって処理されます。ユーザーがページ B を表示するために認証されていない場合、ユーザーは自動的にログイン ページに転送されます。それは問題ではなく、JavaScript コードをどのように編成するかが問題です。)

Backbone アプリの 2 つの別々のバージョンを維持する必要がありますか? または、2 つの間でコードを共有する方法はありますか?

文脈上、これは非常に安全なアプリケーションではありませんが、高度な機能は有料であるため、簡単にハッキングできないようにしたいと思います.

4

2 に答える 2

0

バックボーン アプリで共通の機能を定義し、高度な機能については、共通のアプリを拡張し、その上にさらに機能を追加することをお勧めします。認証レベルに応じてレンダリングしながら、共通/高度なアプリをレンダリングします。これにより、共通アプリに追加したものは両方のユーザーが利用でき、高度なアプリに追加したものは上級ユーザーのみが利用できます。

于 2013-10-26T00:59:51.063 に答える
0

この場合、開発を最小限に抑えるために私が行うことは、最も安価なソリューションとなるアプリのJavaScriptを醜く/最小化することです.非常に意欲的な人だけが難読化されたコードを調べるのに時間を費やします

于 2013-10-26T00:03:25.657 に答える