~ubuntu-branches/ubuntu/raring/eucalyptus/raring

« back to all changes in this revision

Viewing changes to clc/modules/msgs/src/main/java/com/eucalyptus/auth/UserInfo.java

  • Committer: Package Import Robot
  • Author(s): Brian Thomason
  • Date: 2011-11-29 13:17:52 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 185.
  • Revision ID: package-import@ubuntu.com-20111129131752-rq31al3ntutv2vvl
Tags: upstream-3.0.999beta1
Import upstream version 3.0.999beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*******************************************************************************
2
 
 *Copyright (c) 2009 Eucalyptus Systems, Inc.
3
 
 * 
4
 
 * This program is free software: you can redistribute it and/or modify
5
 
 * it under the terms of the GNU General Public License as published by
6
 
 * the Free Software Foundation, only version 3 of the License.
7
 
 * 
8
 
 * 
9
 
 * This file is distributed in the hope that it will be useful, but WITHOUT
10
 
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
 
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
 
 * for more details.
13
 
 * 
14
 
 * You should have received a copy of the GNU General Public License along
15
 
 * with this program. If not, see <http://www.gnu.org/licenses/>.
16
 
 * 
17
 
 * Please contact Eucalyptus Systems, Inc., 130 Castilian
18
 
 * Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
19
 
 * if you need additional information or have any questions.
20
 
 * 
21
 
 * This file may incorporate work covered under the following copyright and
22
 
 * permission notice:
23
 
 * 
24
 
 * Software License Agreement (BSD License)
25
 
 * 
26
 
 * Copyright (c) 2008, Regents of the University of California
27
 
 * All rights reserved.
28
 
 * 
29
 
 * Redistribution and use of this software in source and binary forms, with
30
 
 * or without modification, are permitted provided that the following
31
 
 * conditions are met:
32
 
 * 
33
 
 * Redistributions of source code must retain the above copyright notice,
34
 
 * this list of conditions and the following disclaimer.
35
 
 * 
36
 
 * Redistributions in binary form must reproduce the above copyright
37
 
 * notice, this list of conditions and the following disclaimer in the
38
 
 * documentation and/or other materials provided with the distribution.
39
 
 * 
40
 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
41
 
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
42
 
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
43
 
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
44
 
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45
 
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
46
 
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
47
 
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
48
 
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
49
 
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
50
 
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
51
 
 * THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
52
 
 * LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
53
 
 * SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
54
 
 * IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
55
 
 * BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
56
 
 * THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
57
 
 * OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
58
 
 * WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
59
 
 * ANY SUCH LICENSES OR RIGHTS.
60
 
 *******************************************************************************/
61
 
/*
62
 
 * Author: chris grzegorczyk <grze@eucalyptus.com>
63
 
 * Author: Sunil Soman sunils@cs.ucsb.edu
64
 
 */
65
 
 
66
 
package com.eucalyptus.auth;
67
 
 
68
 
import javax.persistence.Column;
69
 
import javax.persistence.Entity;
70
 
import javax.persistence.GeneratedValue;
71
 
import javax.persistence.Id;
72
 
import javax.persistence.PersistenceContext;
73
 
import javax.persistence.Table;
74
 
import javax.persistence.Transient;
75
 
import org.hibernate.annotations.Cache;
76
 
import org.hibernate.annotations.CacheConcurrencyStrategy;
77
 
 
78
 
@Entity
79
 
@PersistenceContext( name = "eucalyptus_general" )
80
 
@Table( name = "Users" )
81
 
@Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
82
 
public class UserInfo {
83
 
  
84
 
  @Id
85
 
  @GeneratedValue
86
 
  @Column( name = "user_id" )
87
 
  Long          id          = -1l;
88
 
  
89
 
  @Column( name = "user_name" )
90
 
  String        userName;
91
 
  
92
 
  @Column( name = "user_email" )
93
 
  String        email;
94
 
  
95
 
  @Column( name = "user_real_name" )
96
 
  String        realName;
97
 
  
98
 
  @Column( name = "user_telephone_number" )
99
 
  String        telephoneNumber;
100
 
  
101
 
  @Column( name = "user_affiliation" )
102
 
  String        affiliation;
103
 
  
104
 
  @Column( name = "user_project_description" )
105
 
  String        projectDescription;
106
 
  
107
 
  @Column( name = "user_project_pi_name" )
108
 
  String        projectPIName;
109
 
  
110
 
  @Column( name = "user_is_approved" )
111
 
  Boolean       approved;
112
 
  
113
 
  @Column( name = "user_is_confirmed" )
114
 
  Boolean       confirmed;
115
 
  
116
 
  @Column( name = "password_expires" )
117
 
  Long          passwordExpires;
118
 
  
119
 
  @Column( name = "user_confirmation_code" )
120
 
  String        confirmationCode;
121
 
  
122
 
  @Transient
123
 
  public static String BOGUS_ENTRY = "n/a";
124
 
  
125
 
  public UserInfo( ) {}
126
 
  
127
 
  public UserInfo( String userName, String confirmationCode ) {
128
 
    this( userName, BOGUS_ENTRY, confirmationCode );
129
 
    this.approved = true;
130
 
    this.confirmed = true;
131
 
  }
132
 
  
133
 
  public UserInfo( String userName, String email, String confirmationCode ) {
134
 
    this.approved = true;
135
 
    this.confirmed = false;
136
 
    this.confirmationCode = confirmationCode;
137
 
    this.passwordExpires = 1000 * 60 * 60 * 24 * 365L;
138
 
    
139
 
    this.userName = userName;
140
 
    this.email = email;
141
 
    
142
 
    this.realName = userName;
143
 
    this.telephoneNumber = BOGUS_ENTRY;
144
 
    this.affiliation = BOGUS_ENTRY;
145
 
    this.projectDescription = BOGUS_ENTRY;
146
 
    this.projectPIName = BOGUS_ENTRY;
147
 
  }
148
 
  
149
 
  public UserInfo( String userName ) {
150
 
    this.userName = userName;
151
 
  }
152
 
  
153
 
  public Long getId( ) {
154
 
    return id;
155
 
  }
156
 
  
157
 
  public void setUserName( String userName ) {
158
 
    this.userName = userName;
159
 
  }
160
 
  
161
 
  public String getUserName( ) {
162
 
    return userName;
163
 
  }
164
 
  
165
 
  public String getAffiliation( ) {
166
 
    return affiliation;
167
 
  }
168
 
  
169
 
  public void setAffiliation( String affiliation ) {
170
 
    this.affiliation = affiliation;
171
 
  }
172
 
  
173
 
  public Long getPasswordExpires( ) {
174
 
    return passwordExpires;
175
 
  }
176
 
  
177
 
  public void setPasswordExpires( Long passwordExpires ) {
178
 
    this.passwordExpires = passwordExpires;
179
 
  }
180
 
  
181
 
  public Boolean isApproved( ) {
182
 
    return approved;
183
 
  }
184
 
  
185
 
  public void setApproved( Boolean approved ) {
186
 
    this.approved = approved;
187
 
  }
188
 
  
189
 
  public String getProjectDescription( ) {
190
 
    return projectDescription;
191
 
  }
192
 
  
193
 
  public void setProjectDescription( String projectDescription ) {
194
 
    this.projectDescription = projectDescription;
195
 
  }
196
 
  
197
 
  public String getProjectPIName( ) {
198
 
    return projectPIName;
199
 
  }
200
 
  
201
 
  public void setProjectPIName( String projectPIName ) {
202
 
    this.projectPIName = projectPIName;
203
 
  }
204
 
  
205
 
  public String getRealName( ) {
206
 
    return realName;
207
 
  }
208
 
  
209
 
  public void setRealName( String realName ) {
210
 
    this.realName = realName;
211
 
  }
212
 
  
213
 
  public String getTelephoneNumber( ) {
214
 
    return telephoneNumber;
215
 
  }
216
 
  
217
 
  public void setTelephoneNumber( String telephoneNumber ) {
218
 
    this.telephoneNumber = telephoneNumber;
219
 
  }
220
 
  
221
 
  public String getEmail( ) {
222
 
    return email;
223
 
  }
224
 
  
225
 
  public void setEmail( String email ) {
226
 
    this.email = email;
227
 
  }
228
 
  
229
 
  public Boolean getConfirmed( ) {
230
 
    return this.confirmed;
231
 
  }
232
 
  
233
 
  public void setConfirmed( Boolean confirmed ) {
234
 
    this.confirmed = confirmed;
235
 
  }
236
 
  
237
 
  public String getConfirmationCode( ) {
238
 
    return this.confirmationCode;
239
 
  }
240
 
  
241
 
  public void setConfirmationCode( String confirmationCode ) {
242
 
    this.confirmationCode = confirmationCode;
243
 
  }
244
 
  
245
 
  public Boolean getApproved( ) {
246
 
    return this.approved;
247
 
  }
248
 
  
249
 
  public boolean equals( final Object o ) {
250
 
    if ( this == o ) return true;
251
 
    if ( o == null || getClass( ) != o.getClass( ) ) return false;
252
 
    
253
 
    UserInfo userInfo = ( UserInfo ) o;
254
 
    
255
 
    if ( !userName.equals( userInfo.userName ) ) return false;
256
 
    
257
 
    return true;
258
 
  }
259
 
  
260
 
  public int hashCode( ) {
261
 
    return userName.hashCode( );
262
 
  }
263
 
  
264
 
  public String toString( ) {
265
 
    StringBuilder sb = new StringBuilder( );
266
 
    sb.append( "UserInfo [ ");
267
 
    sb.append( "affiliation = ").append( affiliation == null ? "null" : affiliation ).append( ", " );
268
 
    sb.append( "approved = ").append( approved == null ? "null" : approved ).append( ", " );
269
 
    sb.append( "confirmationCode = ").append( confirmationCode == null ? "null" : confirmationCode ).append( ", " );
270
 
    sb.append( "confirmed = ").append( confirmed == null ? "null" : confirmed ).append( ", " );
271
 
    sb.append( "email = ").append( email == null ? "null" : email ).append( ", " );
272
 
    sb.append( "passwordExpires = ").append( passwordExpires == null ? "null" : passwordExpires ).append( ", " );
273
 
    sb.append( "projectDescription = ").append( projectDescription == null ? "null" : projectDescription ).append( ", " );
274
 
    sb.append( "projectPIName = ").append( projectPIName == null ? "null" : projectPIName ).append( ", " );
275
 
    sb.append( "realName = ").append( realName == null ? "null" : realName ).append( ", " );
276
 
    sb.append( "telephoneNumber = ").append( telephoneNumber == null ? "null" : telephoneNumber ).append( ", " );
277
 
    sb.append( "userName = ").append( userName == null ? "null" : userName ).append( " ]" );
278
 
    return sb.toString( );
279
 
  }
280
 
}