77 lines
2.4 KiB
Ruby
77 lines
2.4 KiB
Ruby
module JamRuby
|
|
class IcecastUserAuthentication < ActiveRecord::Base
|
|
include JAmXml
|
|
self.primary_key = 'id'
|
|
|
|
attr_accessible :stype, :filename, :allow_duplicate_users, :mount_add, :mount_remove,
|
|
:listener_add, :listener_remove, :username, :password, :auth_header, :timelimit_header
|
|
|
|
|
|
|
|
validates :stype, presence: true
|
|
|
|
def dumpXml (ident=1, output=$stdout)
|
|
|
|
tb = "\t"
|
|
tbs = tb * (ident)
|
|
tbse = tb * (ident-1)
|
|
if tbse.empty? || tbse.nil?
|
|
tbse=""
|
|
end
|
|
|
|
if self.stype.nil?
|
|
return
|
|
elsif self.stype.empty?
|
|
return
|
|
elsif self.stype == "htpasswd"
|
|
nm = "<authentication type=\"htpasswd\">"
|
|
|
|
output.puts "#{tbse}#{nm}"
|
|
fname = jMakeStrXmlSafe(self.filename)
|
|
|
|
output.puts "#{tbs}<option name=\"filename\" value=\"#{fname}\"/>"
|
|
output.puts "#{tbs}<option name=\"allow_duplicate_users\" value=\"#{self.allow_duplicate_users}\"/>"
|
|
nm = "authentication"
|
|
output.puts "#{tbse}</#{nm}>"
|
|
|
|
elsif self.stype == 'url'
|
|
|
|
nm = "<authentication type=\"url\">"
|
|
output.puts "#{tbse}#{nm}"
|
|
v = jMakeStrXmlSafe(self.mount_add)
|
|
output.puts "#{tbs}<option name=\"mount_add\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.mount_remove)
|
|
output.puts "#{tbs}<option name=\"mount_remove\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.listener_add)
|
|
output.puts "#{tbs}<option name=\"listener_add\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.listener_remove)
|
|
output.puts "#{tbs}<option name=\"listener_remove\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.listener_remove)
|
|
output.puts "#{tbs}<option name=\"listener_remove\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.username)
|
|
output.puts "#{tbs}<option name=\"username\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.password)
|
|
output.puts "#{tbs}<option name=\"password\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.auth_header)
|
|
output.puts "#{tbs}<option name=\"auth_header\" value=\"#{v}\"/>"
|
|
|
|
v = jMakeStrXmlSafe(self.timelimit_header)
|
|
output.puts "#{tbs}<option name=\"timelimit_header\" value=\"#{v}\"/>"
|
|
|
|
|
|
nm = "authentication"
|
|
output.puts "#{tbse}</#{nm}>"
|
|
else
|
|
raise 'Unsupported authentication format #{self.stype}'
|
|
end
|
|
|
|
end
|
|
end
|
|
end |