package scrum.server.admin;
import ilarkesto.auth.OpenId;
import ilarkesto.base.time.DateAndTime;
import ilarkesto.core.logging.Log;
import scrum.server.ScrumWebApplication;
public class UserDao extends GUserDao {
private static Log log = Log.get(UserDao.class);
@Override
public User postUser(String name, String password) {
return postUser(null, name, password);
}
public User postUser(String email, String name, String password) {
User user = newEntityInstance();
user.setEmail(email);
user.setName(name);
user.setPassword(password);
saveEntity(user);
log.info("User created:", user);
return user;
}
public User postUserWithDefaultPassword(String name) {
return postUser(name, getDefaultPassword());
}
public User postUserWithOpenId(String openId) {
String name = OpenId.cutUsername(openId);
if (getUserByName(name) != null) name = openId;
User user = newEntityInstance();
user.setName(name);
user.setOpenId(openId);
saveEntity(user);
log.info("User created:", user);
return user;
}
@Override
public User newEntityInstance() {
User user = super.newEntityInstance();
String password = getDefaultPassword();
user.setPassword(password);
user.setRegistrationDateAndTime(DateAndTime.now());
return user;
}
private String getDefaultPassword() {
return ScrumWebApplication.get().getSystemConfig().getDefaultUserPassword();
}
// --- test data ---
public User getTestUser(String name) {
User user = getUserByName(name);
if (user == null) user = postUserWithDefaultPassword(name);
return user;
}
}