2012-05-04 8 views
4

ログインしているユーザに応じて自分のドキュメントのコレクションをフィルタリングしようとしています。私はcloudant.comの人々が投稿したinstructions for authに続き、私は_userdbを作成しました。できます。cloudant:アドホックユーザフィールドを取得する

今、私の質問は:それはユーザーオブジェクトにはいくつかのアドホックキーを追加し、jquery.couchLoginのようないくつかのJSプラグインで、私のコードから取得することは可能でしょうか?

私が作りたいものの例:その後、

{ 
    "_id": "org.couchdb.user:agata", 
    "_rev": "1-03a67c25da054b5f24d215f4db059d71", 
    "name": "agata", 
    "type": "user", 
    "roles": ["admin"], 
    "password_sha": "***", 
    "salt": "***", 
    "MYKEY1":"my val", 
    "MYKEY2":"my val2" 
} 

とMYKEY1とMYKEY2を取得....

私はすでに$ .couchLoginと試みたが、私は取得することができ、すべてがどのuserCtxオブジェクトであります上記のフィールドの一部(名前、役割)のみを報告します。 userCtxオブジェクトにキーを追加するには、couchdbコードを使う必要があります。私は本当にしたくありません。

シンプルなソリューションはありますか?

答えて

3

この質問には一切答えを受けないように、私はここにcloudantサポートの答えを報告:

あなたは、セキュリティ目的のためにCloudantの 公共クラスタ上でユーザー文書にその情報を格納することはできません。 CouchDB、BigCouch、またはプライベートクラウドクラスタを実行している場合は、 でした。

フィルタリングとアクセス許可を使用して、その情報をデータベースのいずれかに保存して、 にクライアントを持たせることができます(ブラウザではなく、アプリケーションサーバーだとします)。

だから私の戦略は、今、私はユーザーに関する必要なすべての情報を持つ別のDBを作成

  1. になります。
  2. このデータベースにアクセスできるのは、許可されたユーザーのみです。
  3. 私は必要なすべての情報をクライアント側から取得します(ログイン後に確認してください)。

私はあなたはそれが動作し、私が直面した問題を検証するために更新しておこう。

UPDATE

それは働きました! だから戦略は二つのデータベースにするために基本的である:

  1. 1(_users)名前を持つが、SHAパスワードなど、具体的には、
  2. あなたはさまざまなアクションのために必要なだけのユーザ名と他のキーと別の1(your_users_DB)をcloudantしますあなたは実行する必要があります。

だから何私がやったことは、このように構造化文書とこの第二のデータベースを作成することでした:ユーザー(のはUSERONEを言わせ)が正常にログインしたときに次に

{"_id":"org.couchdb.user:USERONE", 
"name":"USERONE", 
"type":"user", 
"roles":["user"], 
"filters":{"FILTER1":"VAL1","FLTER2":"VAL2"}} 

を、また、このドキュメントが検索され、 「フィルタ」フィールドは、自分のコレクションをフィルタリングするために使用されます。

回避策の種類が、それは確実に

作品
関連する問題