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
36 37 38 |
# File 'lib/user.rb', line 36 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
44 45 46 |
# File 'lib/user.rb', line 44 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
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/user.rb', line 96 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
130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/user.rb', line 130 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
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/user.rb', line 59 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
79 80 81 82 |
# File 'lib/user.rb', line 79 def get_page_token(url) response = send_quickbase_ui_action(url) response.body.match(/name=PageToken value=(.*)>/)[1] end |
#get_user_ids(emails) ⇒ Object
158 159 160 161 162 |
# File 'lib/user.rb', line 158 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 30 31 32 33 34 |
# File 'lib/user.rb', line 16 def get_user_role(db_id, user_id) result = send_request(:GetUserRole, db_id, { :userid => user_id }) user = { id: get_attr_value( result.css('user'), :id ), name: get_tag_value( result, :name ), roles: [] } result.css( 'role' ).each do |role| user[ :roles ] << { :id => get_attr_value( role, :id ), :name => get_tag_value( role, :name ), :type => get_tag_value( role, :access ) } end user end |
#provision_user(db_id, email, role_id = nil, first_name = nil, last_name = nil) ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/user.rb', line 48 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
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/user.rb', line 111 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
70 71 72 73 74 75 76 77 |
# File 'lib/user.rb', line 70 def remove_access(db_id, email) user = self.get_user_info(email) user_roles = get_user_role(db_id, user[:id]) user_roles[:roles].each do |role| self.remove_user_from_role(db_id, user[:id], role[:id]) end end |
#remove_acct_management(account_id, emails) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/user.rb', line 84 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
40 41 42 |
# File 'lib/user.rb', line 40 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
144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/user.rb', line 144 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 |