Hi all,
Andreas made up a small JRuby app to register users, think this is
pretty amazing!

Just for your information.

/peter

---------- Forwarded message ----------
From: Andreas Ronge <[EMAIL PROTECTED]>




1. install jruby, http://dist.codehaus.org/jruby/
2. Check/Update environment vars:
  set JAVA_HOME (or just have "java" executable in PATH)
  add $JRUBY_HOME/bin to PATH
3. install rails: gem install rails
4. install ldap ruby library: gem install ruby-net-ldap
5. create a rails project: rails demo
6. cd demo
7. create a controller: jruby script/generate controller UserAdmin
8. edit the app/controllers/upser_admin_controller:
require 'rubygems'
require 'net/ldap'

class UserAdminController < ApplicationController
       def registration
       end

       def add_user
               @username = params[:username]
               pwd = params[:password]
               ldap = Net::LDAP.new
               ldap.host = 'localhost'
               ldap.port = 10389
               ldap.auth "uid=admin,ou=system", "secret"

               dn = "[EMAIL PROTECTED],ou=users,ou=system"
               attributes = {
                       :cn => @username,
                       :objectclass => ["top", "person",
"inetorgperson", "organizationalPerson"],
                       :sn => @username
               }

               success = ldap.add(:dn => dn, :attributes => attributes)
               puts "Success #{success}"
       end


end

9. create rhtml files:
app/views/user_admin/add_user.rhtml
<html>
       <head>
               <title>Signed Up</title>
       </head>

       <body>
               <h1>You have now registered with username <[EMAIL 
PROTECTED]></h1>
       </body>
</html>

app/views/user_admin/registration.rhtml:
<html>
       <head>
               <title>Registration</title>
       </head>

       <body>
               <h1>Registration</h1>

               <h3>Please enter user name and password</h3>
               <% form_tag(:action => :add_user) do %>
                 <label>Username:</label>
                 <%= text_field_tag :username %>
                 <br/>
                 <label>Password:</label>
                 <%= password_field_tag :password %>
                 <p>
                 <%=submit_tag 'Add'%>
               <% end %>
       </body>
</html>

10. test it in WEBrick: jruby script/server
You can now add a user in the ldap by filling in the html form at
http://localhost:3000/user_admin/registration


11. configure which gems should be included in the WAR file
you need to tell which gems should be packed in the WAR file by adding
file config/war.rb:
add_gem 'ruby-net-ldap'

12. create WAR
rake war:standalone:create

13. run it in jetty
rake war:standalone:run

Reply via email to