1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
package org.openslx.imagemaster.db;
import org.apache.log4j.Logger;
import org.openslx.imagemaster.session.User;
public class DbUser extends User
{
private static Logger log = Logger.getLogger( DbUser.class );
public DbUser(int userId, String username, String password, String organization,
String firstName, String lastName, String eMail,
String satelliteAddress)
{
super( userId, username, password, organization, firstName, lastName, eMail,
satelliteAddress );
}
/**
* Query database for user with given login
*
* @param login
* (user@organization)
* @return instance of DbUser for matching entry from DB, or null if not
* found
*/
public static DbUser forLogin( final String login )
{
final String[] parts = login.split( "@" );
if ( parts.length != 2 )
return null;
return MySQL
.findUniqueOrNull(
DbUser.class,
"SELECT user.userid, user.username, user.password, user.organization, user.firstname, user.lastname, user.email, satellite.address FROM user"
+ " LEFT JOIN satellite USING (organization)"
+ " WHERE user.username = ? AND user.organization = ? LIMIT 1",
parts[0], parts[1] );
}
public static boolean insertOrUpdate( User user )
{
log.debug( "Inserted user '" + user.username + "' into db." );
MySQL.update(
"INSERT INTO user (username, password, organization, firstname, lastname, email) VALUES (?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE password=VALUES(password), organization=VALUES(organization), firstname=VALUES(firstname), lastname=VALUES(lastname), email=VALUES(email)",
user.username, user.password, user.organization, user.firstName, user.lastName, user.eMail );
return false;
}
public static int getUserIdByName( String username )
{
DbUser user = MySQL
.findUniqueOrNull(
DbUser.class,
"SELECT user.userid, user.username, user.password, user.organization, user.firstname, user.lastname, user.email, satellite.address FROM user"
+ " LEFT JOIN satellite USING (organization)"
+ " WHERE user.username = ? LIMIT 1", username );
if ( user == null ) return 0;
return user.userId;
}
public static String getUserNameById( int id )
{
DbUser user = MySQL
.findUniqueOrNull(
DbUser.class,
"SELECT user.userid, user.username, user.password, user.organization, user.firstname, user.lastname, user.email, satellite.address FROM user"
+ " LEFT JOIN satellite USING (organization)"
+ " WHERE user.userid = ? LIMIT 1", id );
if (user == null) return "";
return user.username;
}
/**
* Checks if a user with id (userid@organization) exists
* @param id
* @return Whether the user exists
*/
public static boolean exists( String id )
{
String[] parts = id.split( "@" );
String user = parts[0];
String organization = parts[1];
DbUser dbUser = MySQL.findUniqueOrNull( DbUser.class,
"SELECT user.userid, user.username, user.password, user.organization, user.firstname, user.lastname, user.email, satellite.address FROM user"
+ " LEFT JOIN satellite USING (organization)"
+ " WHERE user.username = ? AND user.organization = ? LIMIT 1", user, organization);
if ( dbUser == null ) return false;
return true;
}
}
|