From 38d9d8a410826d42322f0480d04af0e02aac95db Mon Sep 17 00:00:00 2001 From: Wellington Mendoza Date: Tue, 19 Sep 2017 16:28:05 -0500 Subject: [PATCH] Demonstrate common additive permission updates --- .../rest/roles/update-role/update-role.3.x.js | 6 ++++-- .../rest/roles/update-role/update-role.5.x.cs | 12 ++++++------ .../rest/roles/update-role/update-role.5.x.php | 7 ++++--- .../rest/roles/update-role/update-role.5.x.rb | 5 +++-- .../rest/roles/update-role/update-role.6.x.py | 5 ++++- .../rest/roles/update-role/update-role.7.x.java | 6 ++++-- 6 files changed, 25 insertions(+), 16 deletions(-) diff --git a/ip-messaging/rest/roles/update-role/update-role.3.x.js b/ip-messaging/rest/roles/update-role/update-role.3.x.js index 523b5ad086..ef5ab300d2 100644 --- a/ip-messaging/rest/roles/update-role/update-role.3.x.js +++ b/ip-messaging/rest/roles/update-role/update-role.3.x.js @@ -7,8 +7,10 @@ const service = client.chat.services('ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); service .roles('RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') - .update({ - permission: 'inviteMember', + .fetch() + .then(role => { + const new_permissions = ['sendMediaMessage'].concat(role.permissions || []); + return role.update({permission: new_permissions}); }) .then(response => { console.log(response); diff --git a/ip-messaging/rest/roles/update-role/update-role.5.x.cs b/ip-messaging/rest/roles/update-role/update-role.5.x.cs index 66e96cc0b3..26e318ddeb 100644 --- a/ip-messaging/rest/roles/update-role/update-role.5.x.cs +++ b/ip-messaging/rest/roles/update-role/update-role.5.x.cs @@ -17,13 +17,13 @@ static void Main(string[] args) TwilioClient.Init(accountSid, authToken); // Update the role - var permissions = new List - { - "sendMessage", - "leaveChannel" - }; + var empty_list = new List(); + var newPermissions = new List { "sendMessage" }; + + var role = RoleResource.Fetch(serviceSid, roleSid); + newPermissions.AddRage(role.Permissions ?? empty_list); - var role = RoleResource.Update(serviceSid, roleSid, permissions); + var role = RoleResource.Update(serviceSid, roleSid, newPermissions); foreach (var permission in role.Permissions) { diff --git a/ip-messaging/rest/roles/update-role/update-role.5.x.php b/ip-messaging/rest/roles/update-role/update-role.5.x.php index 2c6878302c..8fbf179d08 100644 --- a/ip-messaging/rest/roles/update-role/update-role.5.x.php +++ b/ip-messaging/rest/roles/update-role/update-role.5.x.php @@ -16,8 +16,9 @@ $role = $client->chat ->services("ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") ->roles("RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") - ->update( - array("sendMessage", "leaveChannel") - ); + ->fetch(); + +$new_permissions = array_merge(['sendMediaMessage'], $role->permissions || []); +$role->update($new_permissions); print $role->friendlyName; diff --git a/ip-messaging/rest/roles/update-role/update-role.5.x.rb b/ip-messaging/rest/roles/update-role/update-role.5.x.rb index b7b82805b9..02635c943f 100644 --- a/ip-messaging/rest/roles/update-role/update-role.5.x.rb +++ b/ip-messaging/rest/roles/update-role/update-role.5.x.rb @@ -8,6 +8,7 @@ service = client.chat.v2.services(service_sid) # Update a role -role = service.roles('RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') - .update(permission: %w[sendMessage leaveChannel]) +role = service.roles('RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch +new_permissions = role.permissions | ['sendMediaMessage'] +role = role.update(permission: new_permissions) puts "Role #{role.sid} now has permissions #{role.permissions.join(', ')}" diff --git a/ip-messaging/rest/roles/update-role/update-role.6.x.py b/ip-messaging/rest/roles/update-role/update-role.6.x.py index 91527c6de2..dde120e589 100644 --- a/ip-messaging/rest/roles/update-role/update-role.6.x.py +++ b/ip-messaging/rest/roles/update-role/update-role.6.x.py @@ -10,6 +10,9 @@ role = client.chat \ .services("ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \ .roles("RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \ - .update(permission=["sendMessage", "leaveChannel"]) + .fetch() + +new_permissions = ['sendMediaMessage'] + (role.permission or []) +role.update(permission=new_permissions) print(role.friendly_name) diff --git a/ip-messaging/rest/roles/update-role/update-role.7.x.java b/ip-messaging/rest/roles/update-role/update-role.7.x.java index b952eded84..5acc5532eb 100644 --- a/ip-messaging/rest/roles/update-role/update-role.7.x.java +++ b/ip-messaging/rest/roles/update-role/update-role.7.x.java @@ -17,9 +17,11 @@ public static void main(String[] args) { // Initialize the client Twilio.init(ACCOUNT_SID, AUTH_TOKEN); - List permissions = Arrays.asList("sendMessage", "leaveChannel"); + Role role = Role.fetcher(SERVICE_SID, ROLE_SID).fetch(); + List newPermissions = new ArrayList(Arrays.asList("sendMessage")); + newPermissions.addAll(role.getPermission()); // Update the role - Role role = Role.updater(SERVICE_SID, ROLE_SID, permissions).update(); + Role role = Role.updater(SERVICE_SID, ROLE_SID, newPermissions).update(); } }