Module: AdvantageQuickbase::API::User
- Included in:
- AdvantageQuickbase::API
- Defined in:
- lib/user.rb
Instance Method Summary collapse
- #add_user_to_role(db_id, user_id, role_id) ⇒ Object
- #change_user_role(db_id, user_id, role_id, new_role_id = nil) ⇒ Object
- #deactivate_users(account_id, emails) ⇒ Object
- #deny_users(account_id, emails) ⇒ Object
- #get_app_access ⇒ Object
- #get_page_token(url) ⇒ Object
- #get_user_ids(emails) ⇒ Object
- #get_user_info(email) ⇒ Object
- #get_user_role(db_id, user_id) ⇒ Object
- #provision_user(db_id, email, role_id = nil, first_name = nil, last_name = nil) ⇒ Object
- #reactivate_users(account_id, emails) ⇒ Object
- #remove_access(db_id, email) ⇒ Object
- #remove_acct_management(account_id, emails) ⇒ Object
- #remove_user_from_role(db_id, user_id, role_id) ⇒ Object
- #undeny_users(account_id, emails) ⇒ Object
Instance Method Details
#add_user_to_role(db_id, user_id, role_id) ⇒ Object
31 32 33 |
# File 'lib/user.rb', line 31 def add_user_to_role(db_id, user_id, role_id) send_request(:AddUserToRole, db_id, { :userid => user_id, :roleid => role_id }) end |
#change_user_role(db_id, user_id, role_id, new_role_id = nil) ⇒ Object
39 40 41 |
# File 'lib/user.rb', line 39 def change_user_role(db_id, user_id, role_id, new_role_id=nil) send_request(:ChangeUserRole, db_id, { :userid => user_id, :roleid => role_id, :newroleid => new_role_id }) end |
#deactivate_users(account_id, emails) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/user.rb', line 91 def deactivate_users(account_id, emails) remove_acct_management(account_id, emails) user_ids = get_user_ids(emails); url = "https://#{base_domain}/db/main?a=QBI_AccountRemoveMultiUserAccess" url += "&accountid=#{account_id}" url += "&removeAction=deact" url += "&uids=" + user_ids.join(",") result = send_quickbase_ui_action(url) result = parse_xml( result.body ) get_tag_value(result, "numchanged") end |
#deny_users(account_id, emails) ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/user.rb', line 125 def deny_users(account_id, emails) user_ids = get_user_ids(emails); url = "https://#{base_domain}/db/main?a=QBI_AccountRemoveMultiUserAccess" url += "&accountid=#{account_id}" url += "&removeAction=deny" url += "&uids=" + user_ids.join(",") result = send_quickbase_ui_action(url) result = parse_xml( result.body ) get_tag_value(result, "numchanged") end |
#get_app_access ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/user.rb', line 54 def get_app_access() tables = [] result = send_request(:GrantedDBs, "main", {}) result.css( 'dbinfo' ).each do |database| tables << { :name => get_tag_value(database, "dbname"), :db_id => get_tag_value(database, "dbid") } end tables end |
#get_page_token(url) ⇒ Object
74 75 76 77 |
# File 'lib/user.rb', line 74 def get_page_token(url) response = send_quickbase_ui_action(url) response.body.match(/name=PageToken value=(.*)>/)[1] end |
#get_user_ids(emails) ⇒ Object
153 154 155 156 157 |
# File 'lib/user.rb', line 153 def get_user_ids(emails) user_ids = emails.map do |email| self.get_user_info(email)[:id] end end |
#get_user_info(email) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/user.rb', line 4 def get_user_info(email) user = send_request( :GetUserInfo, "main", { :email => email }) user = { :id => get_attr_value(user.css("user"), :id), :first_name => get_tag_value(user, :firstname), :last_name => get_tag_value(user, :lastname), :login => get_tag_value(user, :login), :email => get_tag_value(user, :email), :screen_name => get_tag_value(user, :screenname), } end |
#get_user_role(db_id, user_id) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/user.rb', line 16 def get_user_role(db_id, user_id) roles = [] result = send_request(:GetUserRole, db_id, { :userid => user_id }) result.css( 'role' ).each do |role| roles << role = { :id => get_attr_value(role, :id), :name => get_tag_value(role, :name), :type => get_tag_value(role, :access ) } end roles end |
#provision_user(db_id, email, role_id = nil, first_name = nil, last_name = nil) ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/user.rb', line 43 def provision_user(db_id, email, role_id=nil, first_name=nil, last_name=nil) = { :email => email, :roleid => role_id, :first_name => first_name, :last_name => last_name } send_request(:ProvisionUser, db_id, ) end |
#reactivate_users(account_id, emails) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/user.rb', line 106 def reactivate_users(account_id, emails) user_ids = get_user_ids(emails); numchanged = 0 url = "https://#{base_domain}/db/main?a=QBI_DeactivateUser" url += "&cmpid=#{account_id}" url += "&tuid=" user_ids.each do |id| activate = url + id result = send_quickbase_ui_action(activate) result = parse_xml( result.body ) numchanged += 1 if get_tag_value(result, "newstatus") end numchanged end |
#remove_access(db_id, email) ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/user.rb', line 65 def remove_access(db_id, email) user = self.get_user_info(email) roles = get_user_role(db_id, user[:id]) roles.each do |role| self.remove_user_from_role(db_id, user[:id], role[:id]) end end |
#remove_acct_management(account_id, emails) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/user.rb', line 79 def remove_acct_management(account_id, emails) user_ids = get_user_ids(emails); user_ids.map!{ |user_id| "US" + user_id.split(".")[0] + "=12"} user_ids = user_ids.join(",") url = "https://#{base_domain}/db/main?a=DoAccountPerms" url += "&accountid=#{account_id}" page_token = get_page_token(url) send_quickbase_ui_action(url, {'accountID' => account_id, 'retval' => user_ids, 'pageToken' => page_token}) end |
#remove_user_from_role(db_id, user_id, role_id) ⇒ Object
35 36 37 |
# File 'lib/user.rb', line 35 def remove_user_from_role(db_id, user_id, role_id) send_request(:RemoveUserFromRole, db_id, { :userid => user_id, :roleid => role_id }) end |
#undeny_users(account_id, emails) ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/user.rb', line 139 def undeny_users(account_id, emails) user_ids = get_user_ids(emails); url = "https://#{base_domain}/db/main?a=QBI_AccountRemoveMultiUserAccess" url += "&accountid=#{account_id}" url += "&removeAction=allow" url += "&uids=" + user_ids.join(",") result = send_quickbase_ui_action(url) result = parse_xml( result.body ) get_tag_value(result, "numchanged") end |