Skip to content

Instantly share code, notes, and snippets.

@matschaffer
Created April 19, 2009 04:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matschaffer/97915 to your computer and use it in GitHub Desktop.
Save matschaffer/97915 to your computer and use it in GitHub Desktop.
require 'java'
Dir['*.jar'].each { |jar| require jar }
require '../liferay-portal-5.2.2/tomcat-6.0.18/webapps/ROOT/WEB-INF/lib/saaj-api.jar'
class Liferay
def initialize(user, pass, host)
@url_base = "http://#{user}:#{pass}@#{host}/tunnel-web/secure/axis"
end
def service(name, type = "Portal")
url = java.net.URL.new("#{@url_base}/#{type}_#{name}Service")
locator = eval("com.liferay.client.soap.#{type.downcase}.service.http.#{name}ServiceSoapServiceLocator.new")
eval("locator.get#{type}_#{name}Service(url)")
end
def self.connect(user, pass, host = "localhost:8080")
@@adapter = self.new(user, pass, host)
end
def self.adapter
@@adapter
end
end
Liferay.connect('test', 'test')
CompanyService = Liferay.adapter.service('Company')
UserService = Liferay.adapter.service('User')
company = CompanyService.getCompanyByVirtualHost('localhost')
user_name = 'soaptester9'
portal = com.liferay.client.soap.portal
portlet = com.liferay.client.soap.portlet
newUser = UserService.addUser(companyId = company.getCompanyId,
autoPassword = false,
password1 = 'soaptest1',
password2 = 'soaptest1',
autoScreenName = false,
screenName = user_name,
emailAddress = "#{user_name}@test.com",
openId = '',
locale = 'en_US',
firstName = 'Soap',
middleName = 'J',
lastName = 'Tester',
prefixId = 0,
suffixId = 0,
male = true,
birthdayMonth = 4 - 1,
birthdayDay = 10,
birthdayYear = 2009,
jobTitle = '',
groupIds = [].to_java(:long),
organizationIds = [].to_java(:long),
roleIds = [].to_java(:long),
userGroupIds = [].to_java(:long),
sendEmail = false,
addresses = [].to_java(portal.model.AddressSoap),
emailAddresses = [].to_java(portal.model.EmailAddressSoap),
phones = [].to_java(portal.model.PhoneSoap),
websites = [].to_java(portal.model.WebsiteSoap),
announcementsDelivers = [].to_java(portlet.announcements.model.AnnouncementsDeliverySoap),
serviceContext = nil)
p newUser
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment