class ZmLdifExport::Account
Attributes
ldif[RW]
Public Class Methods
add(resource)
click to toggle source
# File lib/zmldifexport.rb, line 330 def self.add(resource) @resources.push resource end
all()
click to toggle source
# File lib/zmldifexport.rb, line 326 def self.all return @resources end
new(ldif)
click to toggle source
# File lib/zmldifexport.rb, line 338 def initialize(ldif) @name = ldif[:uid] @ldif = ldif @attributes = parse_attributes(ldif: ldif, exclude: [:uid]) end
Public Instance Methods
ace_to_json(zm_attr = '')
click to toggle source
# File lib/zmldifexport.rb, line 375 def ace_to_json(zm_attr = '') ace = {} keys_and_values = zm_attr.split(';') keys_and_values.each do |kv| key, value = kv.split(':') ace[key] = kv[value] end return ace end
aces(zma)
click to toggle source
# File lib/zmldifexport.rb, line 385 def aces(zma) aces = [] zma.each do |zm| aces.push(ace_to_json(zm)) end return aces end
has_alias?()
click to toggle source
# File lib/zmldifexport.rb, line 334 def has_alias? attributes['zimbramailalias'] ? attributes['zimbramailalias'].any? : false end
zmprov_aaa(print: false, domain:)
click to toggle source
# File lib/zmldifexport.rb, line 362 def zmprov_aaa(print: false, domain:) aliases = attributes['zimbramailalias'] return if aliases.nil? || aliases.empty? lines = [] aliases.each do |mail| lines.push("aaa #{name(:zmprov, domain)} #{mail}") end cmd = lines.join("\n") puts cmd if print return cmd end
zmprov_ca(domain: '', mail_host: nil, skip: [], print: false)
click to toggle source
# File lib/zmldifexport.rb, line 345 def zmprov_ca(domain: '', mail_host: nil, skip: [], print: false) line = [ '/opt/zimbra/bin/zmprov ca', name(:zmprov, domain), 'P4ssW04r..,. ' ] line.push "zimbraMailHost #{mail_host} " unless mail_host.nil? attributes.each do |name, value| next if name =~ /(zimbramailalias|admin|zimbracosid|zimbraace|zimbrasharedItem|signature|zimbramailsievescript)/i next if skip.include?(name) line << attr_to_zmprov(attr_name: name, value: value) end cmd = line.join(' ') puts cmd if print return cmd end
zmprov_sharing(print: false, domain:)
click to toggle source
# File lib/zmldifexport.rb, line 394 def zmprov_sharing(print: false, domain:) return nil if attributes['zimbrashareditem'].nil? line = [] zimbra_shares = aces(attributes['zimbrashareditem']) zimbra_shares.each do |ace| next if ace['granteeName'] == 'null' line.push("zmmailbox -z -m #{name(:zmprov, domain)} mfg '#{ace['folderPath']}' account #{ace['granteeName']} #{ace['rights']}") end cmd = line.size > 0 ? line.join("\n") + "\n" : nil puts cmd if print return cmd end
zmprov_signatures(print: false, domain:)
click to toggle source
# File lib/zmldifexport.rb, line 408 def zmprov_signatures(print: false, domain:) return nil if attributes['zimbraprefmailsignaturehtml'].nil? line = [] zimbra_shares = attributes['zimbraprefmailsignaturehtml'] zimbra_shares.each do |ace| ace = ace.gsub(/'/, '"') line.push("ma #{name(:zmprov, domain)} zimbraPrefMailSignatureHtml '#{ace}'") end cmd = line.size > 0 ? line.join("\n") + "\n" : nil puts cmd if print return cmd end