advantage_quickbase 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/quickbase.rb +2 -2
- data/lib/user.rb +51 -0
- metadata +1 -1
data/lib/quickbase.rb
CHANGED
@@ -274,10 +274,10 @@ module AdvantageQuickbase
|
|
274
274
|
attr_value = tag.attribute(attr_name.to_s).to_s
|
275
275
|
end
|
276
276
|
|
277
|
-
def send_quickbase_ui_action(url)
|
277
|
+
def send_quickbase_ui_action(url, parameters={})
|
278
278
|
url = URI.parse(url)
|
279
279
|
request = Net::HTTP::Post.new(url.request_uri)
|
280
|
-
request.set_form_data({'ticket' => @ticket })
|
280
|
+
request.set_form_data({'ticket' => @ticket }.merge(parameters))
|
281
281
|
http = Net::HTTP.new(url.host, url.port)
|
282
282
|
http.use_ssl = true
|
283
283
|
|
data/lib/user.rb
CHANGED
@@ -71,6 +71,57 @@ module AdvantageQuickbase
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
def get_page_token(url)
|
75
|
+
response = send_quickbase_ui_action(url)
|
76
|
+
response.body.match(/name=PageToken value=(.*)>/)[1]
|
77
|
+
end
|
78
|
+
|
79
|
+
def remove_acct_management(account_id, emails)
|
80
|
+
user_ids = get_user_ids(emails);
|
81
|
+
user_ids.map!{ |user_id| "US" + user_id.split(".")[0] + "=12"}
|
82
|
+
user_ids = user_ids.join(",")
|
83
|
+
|
84
|
+
url = "https://#{base_domain}/db/main?a=DoAccountPerms"
|
85
|
+
url += "&accountid=#{account_id}"
|
86
|
+
page_token = get_page_token(url)
|
87
|
+
|
88
|
+
send_quickbase_ui_action(url, {'accountID' => account_id, 'retval' => user_ids, 'pageToken' => page_token})
|
89
|
+
end
|
90
|
+
|
91
|
+
def deactivate_users(account_id, emails)
|
92
|
+
remove_acct_management(account_id, emails)
|
93
|
+
user_ids = get_user_ids(emails);
|
94
|
+
|
95
|
+
url = "https://#{base_domain}/db/main?a=QBI_AccountRemoveMultiUserAccess"
|
96
|
+
url += "&accountid=#{account_id}"
|
97
|
+
url += "&removeAction=deact"
|
98
|
+
url += "&uids=" + user_ids.join(",")
|
99
|
+
|
100
|
+
result = send_quickbase_ui_action(url)
|
101
|
+
result = parse_xml( result.body )
|
102
|
+
|
103
|
+
get_tag_value(result, "numchanged")
|
104
|
+
end
|
105
|
+
|
106
|
+
def reactivate_users(account_id, emails)
|
107
|
+
user_ids = get_user_ids(emails);
|
108
|
+
numchanged = 0
|
109
|
+
|
110
|
+
url = "https://#{base_domain}/db/main?a=QBI_DeactivateUser"
|
111
|
+
url += "&cmpid=#{account_id}"
|
112
|
+
url += "&tuid="
|
113
|
+
|
114
|
+
user_ids.each do |id|
|
115
|
+
activate = url + id
|
116
|
+
result = send_quickbase_ui_action(activate)
|
117
|
+
result = parse_xml( result.body )
|
118
|
+
|
119
|
+
numchanged += 1 if get_tag_value(result, "newstatus")
|
120
|
+
end
|
121
|
+
|
122
|
+
numchanged
|
123
|
+
end
|
124
|
+
|
74
125
|
def deny_users(account_id, emails)
|
75
126
|
user_ids = get_user_ids(emails);
|
76
127
|
|