Some checks failed
continuous-integration/drone/push Build is failing
No need to keep them in two places at the same time. We can fetch them from LDAP whenever we want to do something with them.
28 lines
513 B
Ruby
28 lines
513 B
Ruby
require "image_processing/vips"
|
|
|
|
module LdapManager
|
|
class UpdateAvatar < LdapManagerService
|
|
def initialize(dn, file)
|
|
@dn = dn
|
|
@img_data = process(file)
|
|
end
|
|
|
|
def call
|
|
replace_attribute @dn, :jpegPhoto, @img_data
|
|
end
|
|
|
|
private
|
|
|
|
def process(file)
|
|
processed = ImageProcessing::Vips
|
|
.resize_to_fill(512, 512)
|
|
.source(file)
|
|
.convert("jpeg")
|
|
.saver(strip: true)
|
|
.call
|
|
|
|
Base64.strict_encode64 processed.read
|
|
end
|
|
end
|
|
end
|