65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/discourse_api/single_sign_on.rb', line 65
def self.parse_hash(payload)
sso = new
sso.sso_secret = payload.delete(:sso_secret)
sso.sso_url = payload.delete(:sso_url)
ACCESSORS.each do |k|
val = payload[k]
val = val.to_i if FIXNUMS.include? k
if BOOLS.include? k
val = ["true", "false"].include?(val) ? val == "true" : nil
end
val = val.split(",") if ARRAYS.include?(k) && !val.nil?
sso.send("#{k}=", val)
end
sso.custom_fields = payload[:custom_fields]
payload.each do |k, v|
if field = k[/^custom\.(.+)$/, 1]
sso.custom_fields["custom.#{field}"] = v
end
end
sso
end
|