KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > raptus > owxv3 > api > usermgr > UserGenerator


1 /*
2  * UserGenerator.java
3  *
4  * Created on August 20, 2003, 5:52 PM
5  */

6
7 package com.raptus.owxv3.api.usermgr;
8
9 import java.lang.*;
10 import java.io.*;
11 import java.util.HashMap JavaDoc;
12 import java.util.Locale JavaDoc;
13 import com.raptus.owxv3.LoggingManager;
14
15 /**
16  *
17  * @author root
18  */

19 public class UserGenerator
20 {
21
22     /** Creates a new instance of UserGenerator */
23     public UserGenerator()
24     {
25     }
26
27     public static HashMap JavaDoc generateUser(String JavaDoc firstName,
28                                        String JavaDoc lastName,
29                                        String JavaDoc emailAddr,
30                                        Locale JavaDoc locale,
31                                        String JavaDoc role)
32     {
33         // sanity check
34
if( (firstName == null) || (firstName.length() < 1) ||
35             (lastName == null) || (lastName.length() < 1) ||
36             (emailAddr == null) || (emailAddr.length() < 1) )
37         {
38             LoggingManager.log("ERROR! The FirstName, LastName or EMailAddr is not valid.");
39             return null;
40         }
41
42         // create an user manager
43
UserMgr umgr = UserMgrFactory.getInstance().createUserManager(null);
44
45         // this hashmap will be returned
46
HashMap JavaDoc ret = new HashMap JavaDoc();
47
48         // our final username
49
String JavaDoc userName="";
50
51         // user name is first letter of first name+last name if<8+ [some number]
52
userName = firstName.substring(0,1);
53         if(lastName.length() < 8)
54         {
55             userName = userName + lastName;
56         }
57         else
58         {
59             userName = userName + lastName.substring(0,6);
60         }
61
62         // used for counting, to choose a valid unique user name
63
String JavaDoc count="";
64         int counter=0;
65
66         // generated password
67
String JavaDoc password = new Long JavaDoc(System.currentTimeMillis()).toString();
68         while(true)
69         {
70             String JavaDoc res = userName + count;
71             res = res.toLowerCase();
72             LoggingManager.log("Checking if user " + res + " exists.");
73
74             // found a unique name, create the user
75
User u = umgr.getUser(res);
76             if(u == null)
77             {
78                 LoggingManager.log("Adding user with uid " + res);
79                 umgr.addUser( firstName+" "+lastName, password,res, emailAddr, locale.toString(), null);
80                 userName = res;
81                 break;
82             }
83             else
84             {
85                 // update count with a randomly generated user name
86
//java.util.Random r = new java.util.Random();
87
counter++;
88                 count = "" + counter;
89                 
90                 // start over again
91
}
92         }
93
94         // get the registered user, and update it's roles
95
User u = umgr.getUser(userName);
96         if(u == null)
97         {
98             LoggingManager.log("ERROR! Registered user is null! Failed to create it.");
99             return null;
100         }
101
102         String JavaDoc roles[] = { role };
103         umgr.setRolesForUser(u,roles);
104
105         LoggingManager.log("Successfully created user " + userName + " in role " + role);
106         ret.put("username", userName);
107         ret.put("password", password);
108
109         return ret;
110     }
111
112 }
113
Popular Tags