In the iOS app I am making, I don't have pre existing accounts, the user 
creates a "profile" document and continues navigation in the app. I 
attached my sync config file and I am not sure if I am doing this correctly 
to make sure that the current user syncs only his own profile and survey 
answer Document.

Le jeudi 12 mars 2015 23:18:49 UTC, Souhail Marghabi a écrit :
>
> Hello, 
> Thanks for response. I tried to apply what you suggested:
>
> let's say that I didn't really create user accounts beside the Admin one i 
> use to connect to admin couch server Interface and that I am trying to sync 
> to a password protected Bucket + I have a shadow one too: {
>     "interface": ":4984",
>     "adminInterface": ":4985",
>     "log": ["CRUD", "CRUD+", "HTTP", "HTTP+", "Access", "Cache", "Shadow", 
> "Shadow+", "Changes", "Changes+"],
>     "databases": {
>         "showRoom": {
>             "server": "http://myServer:8091";,
>             "bucket": "sync_gateway",
>             "sync": `function(doc, oldDoc) { 
>
>
>
>   if (doc.type != "client" && 
>             doc.type != "surveyAnswers") {
>
>           // everyone can sync these documents
>           channel("public");
>         }
>  if (doc.type == "client") {
>             // Users can't assign their contact document to another user.
>             if (oldDoc != null && oldDoc.userID != doc.userID) 
> throw({forbidden: "Can't change userId."});            
>             // Users can only change their own contact.
>             requireUser(oldDoc == null ? doc.userID : oldDoc.userID);
>
>         } else
>      if (doc.type == "surveyAnswers") {
>           // give user access to his survey Answers
>           access(doc.userId, "survey-" + doc.userId);
>           // add doc to user's  channel
>           channel("surveyAnswer - " + doc.userId);
>
> requireUser(doc.userId);
>         }
>
>
>
> }`,
>             "users": {
>                 "GUEST": {
>                     "disabled": true }
>             },
>             "shadow": {
>                  "server": "http://myServer:8091";,
>                  "bucket": "shadowDB"
>             }
>         }
>     }
> }
>
> My questions are as follows:
>
> Will this filter the sync making sure that only the profile  "client" of 
> the current user will be updated & synced as for type == survey result?. 
> How do I specify the password to access the bucket that is secured 
> especially for the shadowing.
>
> Sorry for long post. I am still new to this subject
>
> Looking forward to your reply.
>
> Le mercredi 11 mars 2015 16:22:48 UTC, Jens Alfke a écrit :
>>
>>
>> On Mar 11, 2015, at 4:18 AM, Souhail Marghabi <[email protected]> 
>> wrote:
>>
>> I am new to couchbase Mobile and I am developing an iOS app with 
>> couchbase as a backend. I have a object called Survey which has another 
>> object called "Profile" as an  attribute. When syncing I want to make sure 
>> that the survey data gets only synced for the specific "profile" that 
>> applied change to it. in  Other words how to make that we sync only and 
>> retrieve only the related data for the current "profile" / user using the 
>> app.
>>
>>
>> In the sync function:
>> requireUser(doc.profile);
>> channel(“profile-“ + doc.profile);
>>
>> The first line ensures that only the user named in the ‘profile’ property 
>> can change the document.
>> The second adds the document to a channel named after the profile. Then 
>> you need to configure your user accounts so each has access to the channel 
>> with the corresponding name, e.g. for user “foo” add “profile-foo” to the 
>> admin_channels property.
>>
>> —Jens
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/41ae93fe-57d5-41ad-9674-73a74e18cace%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to