Ajout des transactions dans ConferenceManagerBean
Ajout des conferenceCreationToken
Corrections diverses
This commit is contained in:
2008-02-15 10:08:51 +00:00
parent 46f144e03e
commit 21ee0e7096
7 changed files with 415 additions and 128 deletions

View File

@@ -229,8 +229,8 @@ public class ArticleManagerBean implements IArticleManager, Serializable {
.setParameter("article", article)
.setParameter("referee", referee)
.setParameter("pcMember", PCMember);
@SuppressWarnings("unused")
int affectedRows = query.executeUpdate();
System.out.println("Affected Rows :"+affectedRows);
ut.commit();
} catch (Exception e) {
try{

View File

@@ -10,13 +10,16 @@ import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.yacos.core.article.Article;
import org.yacos.core.evaluation.Criterion;
import org.yacos.core.users.Role;
import org.yacos.core.users.User;
@Entity
@@ -44,40 +47,37 @@ public class Conference implements Serializable{
/**
* Roles of users for this conference
*/
@OneToMany(targetEntity=Role.class,mappedBy="conference")
@OneToMany(targetEntity=Role.class,mappedBy="conference",cascade={CascadeType.ALL})
private List<Role> roles;
/* @OneToOne(targetEntity=User.class,optional=true)
@JoinColumn(name="chairman_id",nullable=true)
@OneToOne(targetEntity=User.class,optional=false)
@JoinColumn(name="chairman_id",nullable=false)
private User chairman;
*/
@OneToMany(targetEntity=Article.class,mappedBy="conference")
private List<Article> articles;
@OneToMany(targetEntity=Criterion.class,mappedBy="conference",cascade=CascadeType.ALL)
private List<Criterion> criterions;
/*
/**
* @return the chairman
*/
/*
@OneToOne(targetEntity=User.class,optional=true)
@JoinColumn(name="chairman_id",nullable=true)
public User getChairman() {
return chairman;
}
*/
/**
* @param chairman the chairman to set
*/
/*
@OneToOne(targetEntity=User.class,optional=true)
@JoinColumn(name="chairman_id",nullable=true)
public void setChairman(User chairman) {
this.chairman = chairman;
}
*/
@Temporal(TemporalType.DATE)
public Date getDateAbstract() {
return dateAbstract;
@@ -179,12 +179,12 @@ public class Conference implements Serializable{
/*
* roles
*/
@OneToMany(targetEntity=Role.class,mappedBy="conference")
@OneToMany(targetEntity=Role.class,mappedBy="conference",cascade={CascadeType.ALL})
public List<Role> getRoles() {
return roles;
}
@OneToMany(targetEntity=Role.class,mappedBy="conference")
@OneToMany(targetEntity=Role.class,mappedBy="conference",cascade={CascadeType.ALL})
public void setRoles(List<Role> roles) {
this.roles = roles;
}

View File

@@ -3,14 +3,17 @@ package org.yacos.core.conferences;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.transaction.UserTransaction;
import org.yacos.core.evaluation.Criterion;
import org.yacos.core.exceptions.ConferenceDoesntExistException;
import org.yacos.core.exceptions.NoConferenceCreationTokenLeftException;
import org.yacos.core.system.InvitationToken;
import org.yacos.core.system.InvitationTokenPK;
import org.yacos.core.users.Role;
@@ -20,14 +23,42 @@ import org.yacos.core.users.Role.RoleType;
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class ConferenceManagerBean implements IConferenceManager {
@PersistenceContext
EntityManager em;
@Resource
UserTransaction ut;
public Conference addConference(String titre, String descirption, String infoComplementray, Date dataAbstract, Date dateArticle, Date dateEvaluation, Date dateStart, Date dateEnd) {
Conference conf = new Conference(titre, descirption, infoComplementray, dataAbstract, dateArticle, dateEvaluation, dateStart, dateEnd);
em.persist(conf);
em.flush();
public Conference addConference(
String titre,
String chairmanLogin,
String description,
String complementaryInfo,
Date dataAbstract,
Date dateArticle,
Date dateEvaluation,
Date dateStart,
Date dateEnd) throws NoConferenceCreationTokenLeftException {
Conference conf = new Conference(titre, description, complementaryInfo, dataAbstract, dateArticle, dateEvaluation, dateStart, dateEnd);
if( ! canCreateConference(chairmanLogin)){
throw new NoConferenceCreationTokenLeftException();
}
try {
ut.begin();
User chairman = em.find(User.class, chairmanLogin);
em.persist(conf);
conf.setChairman(chairman);
chairman.setConferenceCreationTokens(chairman.getConferenceCreationTokens()-1);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
return conf;
}
@@ -36,14 +67,40 @@ public class ConferenceManagerBean implements IConferenceManager {
}
public void remove(Integer conferenceId) {
Conference persistedConf = em.find(Conference.class, conferenceId);
em.remove(persistedConf);
em.flush();
try {
ut.begin();
Conference persistedConf = em.find(Conference.class, conferenceId);
em.remove(persistedConf);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void update(Conference conf) {
em.merge(conf);
em.flush();
try {
ut.begin();
Conference persistedConf = em.find(Conference.class, conf.getId());
persistedConf.setDateAbstract(conf.getDateAbstract());
persistedConf.setDateArticle(conf.getDateArticle());
persistedConf.setDateEnd(conf.getDateEnd());
persistedConf.setDateEvaluation(conf.getDateEvaluation());
persistedConf.setDateStart(conf.getDateStart());
persistedConf.setOtherInformations(conf.getOtherInformations());
persistedConf.setTitle(conf.getTitle());
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
@SuppressWarnings("unchecked")
@@ -73,30 +130,80 @@ public class ConferenceManagerBean implements IConferenceManager {
* */
public Role addRole(Role.RoleType roleType, String login, Integer confId) {
User user = em.find(User.class, login);
Conference conf = em.find(Conference.class, confId);
Role role = new Role(roleType, user, conf);
em.persist(role);
em.flush();
return role;
try {
ut.begin();
User user = em.find(User.class, login);
Conference conf = em.find(Conference.class, confId);
Role role = new Role(roleType, user, conf);
em.persist(role);
ut.commit();
return role;
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
return null;
}
public void removeRole(Role role) {
em.remove(role);
em.flush();
try {
ut.begin();
RolePK rolePk = new RolePK(
role.getUser(),
role.getType(),
role.getConference());
Role rolePersisted = em.find(Role.class, rolePk);
em.remove(rolePersisted);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void removePCMemberForConf(Integer confId) {
Conference conf = em.find(Conference.class, confId);
Query query = em.createQuery("delete from Role where conference=? and type=?");
query.setParameter(1, conf);
query.setParameter(2, RoleType.PCMEMBER);
query.executeUpdate();
try {
ut.begin();
Conference conf = em.find(Conference.class, confId);
Query query = em.createQuery("delete from Role where conference=? and type=?");
query.setParameter(1, conf);
query.setParameter(2, RoleType.PCMEMBER);
query.executeUpdate();
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void updateRole(Role role){
em.merge(role);
em.flush();
try {
ut.begin();
RolePK rolePk = new RolePK(
role.getUser(),
role.getType(),
role.getConference());
Role rolePersisted = em.find(Role.class, rolePk);
rolePersisted.setUser(role.getUser());
rolePersisted.setType(role.getType());
rolePersisted.setConference(role.getConference());
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
@SuppressWarnings("unchecked")
@@ -108,8 +215,8 @@ public class ConferenceManagerBean implements IConferenceManager {
@SuppressWarnings("unchecked")
public List<Role> getRoles(User user) {
Query query = em.createQuery("from Role role where user = ?");
query.setParameter(1, user);
Query query = em.createQuery("from Role role where user = ?");
query.setParameter(1, user);
return query.getResultList();
}
@@ -117,9 +224,9 @@ public class ConferenceManagerBean implements IConferenceManager {
public List<Role> getRoles(String userLogin, Integer confId) {
User user = em.find(User.class, userLogin);
Conference conf = em.find(Conference.class, confId);
Query query = em.createQuery("from Role role where conference = ? and user = ?");
query.setParameter(1, conf);
query.setParameter(2, user);
Query query = em.createQuery("from Role role where conference = ? and user = ?");
query.setParameter(1, conf);
query.setParameter(2, user);
return query.getResultList();
}
@@ -148,20 +255,40 @@ public class ConferenceManagerBean implements IConferenceManager {
InvitationToken newToken = em.find(InvitationToken.class, tokenPK);
if(newToken == null){
newToken = new InvitationToken();
newToken.setEmail(email);
newToken.setRole(role);
newToken.setConference(conf);
em.persist(newToken);
try {
ut.begin();
newToken = new InvitationToken();
newToken.setEmail(email);
newToken.setRole(role);
newToken.setConference(conf);
em.persist(newToken);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
return newToken;
}
public void removeInvitationToken(InvitationToken token) {
token = em.find(InvitationToken.class, token.getId());
em.remove(token);
try {
ut.begin();
token = em.find(InvitationToken.class, token.getId());
em.remove(token);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public InvitationToken getInvitationToken(InvitationTokenPK tokenId) {
@@ -178,37 +305,135 @@ public class ConferenceManagerBean implements IConferenceManager {
public void addCriterionToConference(Integer conferenceId, String name,
Integer minRating, Integer maxRating) {
Conference conf = getConference(conferenceId);
Criterion criterion = new Criterion(name,minRating,maxRating,conf);
em.persist(criterion);
try {
ut.begin();
Conference conf = em.find(Conference.class, conferenceId);
Criterion criterion = new Criterion(name,minRating,maxRating,conf);
em.persist(criterion);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void removeCriterionToConference(Integer conferenceId) {
Conference conf = em.find(Conference.class, conferenceId);
Query query = em.createQuery("delete from Criterion where conference=?");
query.setParameter(1, conf);
query.executeUpdate();
try {
ut.begin();
Conference conf = em.find(Conference.class, conferenceId);
Query query = em.createQuery("delete from Criterion where conference=?");
query.setParameter(1, conf);
query.executeUpdate();
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void removeOneCriterionToConference(Criterion criterion) {
em.remove(criterion);
em.flush();
try {
ut.begin();
em.remove(criterion);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void addPCMemberToConference(Integer conferenceId, String userLogin) {
Conference conf = getConference(conferenceId);
User member = em.find(User.class, userLogin);
// First checks if the role already exists, if not create it
RolePK memberRolePK = new RolePK(member,RoleType.PCMEMBER,conf);
if(em.find(Role.class, memberRolePK)==null){
Role memberRole = new Role();
memberRole.setType(RoleType.PCMEMBER);
memberRole.setUser(member);
memberRole.setConference(conf);
em.persist(memberRole);
try {
ut.begin();
Conference conf = em.find(Conference.class,conferenceId);
User member = em.find(User.class, userLogin);
// First checks if the role already exists, if not create it
RolePK memberRolePK = new RolePK(member,RoleType.PCMEMBER,conf);
if(em.find(Role.class, memberRolePK)==null){
Role memberRole = new Role();
memberRole.setType(RoleType.PCMEMBER);
memberRole.setUser(member);
memberRole.setConference(conf);
em.persist(memberRole);
}
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public void addConferenceCreationToken(String userLogin) {
try {
ut.begin();
User user = em.find(User.class,userLogin);
if(user != null){
user.setConferenceCreationTokens(
user.getConferenceCreationTokens()+1);
}
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public boolean canCreateConference(String userLogin) {
return conferenceCreationTokens(userLogin)>0;
}
public Integer conferenceCreationTokens(String userLogin) {
User user = em.find(User.class,userLogin);
if(user == null){
return 0;
}
return user.getConferenceCreationTokens();
}
public void useConferenceCreationToken(String userLogin) throws NoConferenceCreationTokenLeftException {
try {
ut.begin();
User user = em.find(User.class,userLogin);
if(user != null){
Integer tokensLeft = user.getConferenceCreationTokens();
if(tokensLeft>0){
user.setConferenceCreationTokens(tokensLeft-1);
} else {
throw new NoConferenceCreationTokenLeftException();
}
}
ut.commit();
} catch (NoConferenceCreationTokenLeftException e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
throw e;
} catch (Exception e) {
try {
ut.rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}

View File

@@ -7,6 +7,7 @@ import javax.ejb.Remote;
import org.yacos.core.evaluation.Criterion;
import org.yacos.core.exceptions.ConferenceDoesntExistException;
import org.yacos.core.exceptions.NoConferenceCreationTokenLeftException;
import org.yacos.core.system.InvitationToken;
import org.yacos.core.system.InvitationTokenPK;
import org.yacos.core.users.Role;
@@ -17,7 +18,16 @@ import org.yacos.core.users.Role.RoleType;
public interface IConferenceManager {
// CRUD methods
public Conference addConference(String titre, String descirption, String infoComplementray, Date dataAbstract, Date dateArticle, Date dateEvaluation, Date dateStart, Date dateEnd);
public Conference addConference(
String titre,
String chairmanLogin,
String description,
String complementaryInfo,
Date dataAbstract,
Date dateArticle,
Date dateEvaluation,
Date dateStart,
Date dateEnd) throws NoConferenceCreationTokenLeftException;
public Conference getConference(Integer id);
public void addCriterionToConference(Integer conferenceId,String name,Integer minRating, Integer maxRating);
public void removeCriterionToConference(Integer conferenceId);
@@ -52,4 +62,26 @@ public interface IConferenceManager {
public List<InvitationToken> getInvitationTokensForConference(Integer conferenceId);
public InvitationToken addInvitationToken(String email, RoleType role, Integer conferenceId) throws ConferenceDoesntExistException;
public void removeInvitationToken(InvitationToken tokenId);
// Conference creation tokens handling methods
/**
* @return True if the given user has a conference creation token left, false otherwise
*/
public boolean canCreateConference(String userLogin);
/**
* Use (remove) a conference creation token for the given user
* @param userLogin The user from which to remove a token
*/
public void useConferenceCreationToken(String userLogin) throws NoConferenceCreationTokenLeftException;
/**
* Gets the number of conference creation token left for a given user
* @param userLogin The user
* @return The number of token the user has left
*/
public Integer conferenceCreationTokens(String userLogin);
/**
* Adds a conference creation token to the given user
* @param userLogin The user to which we grant the token
*/
public void addConferenceCreationToken(String userLogin);
}

View File

@@ -3,6 +3,8 @@ package org.yacos.core.users;
import java.util.List;
import javax.ejb.Remote;
import org.yacos.core.exceptions.NoConferenceCreationTokenLeftException;
import org.yacos.core.exceptions.PKAlreadyUsedException;
import org.yacos.core.exceptions.UserEMailAlreadyExistsException;
import org.yacos.core.system.InvitationToken;

View File

@@ -79,6 +79,12 @@ public class User implements Serializable{
@OneToMany(cascade=CascadeType.ALL, targetEntity=Role.class,mappedBy="user")
private List<Role> roles;
/**
* How many conference can this user create ?
*/
@Column(nullable=false)
private Integer conferenceCreationTokens;
/*@OneToMany(cascade=CascadeType.ALL, targetEntity=Delegation.class, mappedBy="user")
private List<Delegation> delegation;
*/
@@ -91,10 +97,12 @@ public class User implements Serializable{
this.lastName = lastName;
this.organization = organization;
this.email = email;
this.conferenceCreationTokens = 0;
}
public User() {
this.roles = new ArrayList<Role>();
this.conferenceCreationTokens = 0;
}
@Id
@@ -234,6 +242,23 @@ public class User implements Serializable{
this.specialities = specialities;
}
/**
* How many conferences can this user create ?
* @return The number of conferences this user can create
*/
@Column(nullable=false)
public Integer getConferenceCreationTokens() {
return conferenceCreationTokens;
}
/**
* Sets the number of conferences this user can create
* @param conferenceCreationTokens The number of conferences this user can create
*/
@Column(nullable=false)
public void setConferenceCreationTokens(Integer conferenceCreationTokens) {
this.conferenceCreationTokens = conferenceCreationTokens;
}
/*
@OneToMany(cascade=CascadeType.ALL, targetEntity=Delegation.class, mappedBy="user")
public List<Delegation> getDelegation() {

View File

@@ -5,7 +5,6 @@ package org.yacos.core.users;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
@@ -34,13 +33,13 @@ public class UserManagerBean implements IUserManager{
EntityManager em;
@Resource
private UserTransaction ut;
@SuppressWarnings("unchecked")
public List<User> getUsers(){
Query query = em.createQuery("from User");
return query.getResultList();
}
/**
* Adds a user into the system
* throw PKAlreadyUsedException if login exist in the DB
@@ -48,25 +47,18 @@ public class UserManagerBean implements IUserManager{
*/
public User addUser(String login, String password, String firstName,
String lastName, String organization, String email)
throws PKAlreadyUsedException,UserEMailAlreadyExistsException{
throws PKAlreadyUsedException,UserEMailAlreadyExistsException{
if (!this.exists(login)){
if(this.getByEmail(email) != null){
throw new UserEMailAlreadyExistsException(email);
}
User user = null;
try{
ut.begin();
User user = new User(login, password, firstName, lastName, organization, email);
em.persist(user);
ut.commit();
// Existing InvitationToken handling
List<InvitationToken> tokens = getInvitationTokensForEmail(user.getEmail());
for(InvitationToken token : tokens){
useInvitationTokenOnUser(login, token.getId());
}
return user;
ut.begin();
user = new User(login, password, firstName, lastName, organization, email);
em.persist(user);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
@@ -75,12 +67,19 @@ public class UserManagerBean implements IUserManager{
e1.printStackTrace();
}
}
// Existing InvitationToken handling
List<InvitationToken> tokens = getInvitationTokensForEmail(email);
for(InvitationToken token : tokens){
useInvitationTokenOnUser(login, token.getId());
}
return user;
}
else{ throw new PKAlreadyUsedException(); }
return null;
}
/**
* Removes a user and his article from the system
* @param user
@@ -88,19 +87,19 @@ public class UserManagerBean implements IUserManager{
@SuppressWarnings(value="unchecked")
public void removeUser(String login){
try {
ut.begin();
User persistedUser = em.find(User.class, login);
// Delete the articles for this user
Query articlesQuery = em.createQuery("from Article where mainauthor=?");
articlesQuery.setParameter(1, persistedUser);
List<Article> articles = articlesQuery.getResultList();
for(Article article : articles){
em.remove(article);
}
em.remove(persistedUser);
ut.commit();
ut.begin();
User persistedUser = em.find(User.class, login);
// Delete the articles for this user
Query articlesQuery = em.createQuery("from Article where mainauthor=?");
articlesQuery.setParameter(1, persistedUser);
List<Article> articles = articlesQuery.getResultList();
for(Article article : articles){
em.remove(article);
}
em.remove(persistedUser);
ut.commit();
} catch (Exception e) {
try {
ut.rollback();
@@ -114,7 +113,7 @@ public class UserManagerBean implements IUserManager{
public User getUser(String login) {
return em.find(User.class, login);
}
public User getByEmail(String email){
try {
Query query = em.createQuery("from User where email=?");
@@ -124,7 +123,7 @@ public class UserManagerBean implements IUserManager{
return null;
}
}
public void UpdateUser(User user){
try {
ut.begin();
@@ -134,6 +133,7 @@ public class UserManagerBean implements IUserManager{
updatedUser.setLastName(user.getLastName());
updatedUser.setOrganization(user.getOrganization());
updatedUser.setPassword(user.getPassword());
updatedUser.setConferenceCreationTokens(user.getConferenceCreationTokens());
ut.commit();
} catch (Exception e) {
try {
@@ -144,11 +144,11 @@ public class UserManagerBean implements IUserManager{
}
}
}
public Boolean exists(String login){
return (this.getUser(login)!= null);
}
@SuppressWarnings("unchecked")
public List<User> getUsers(int conf_id) {
Query query = em.createQuery("select user from Role role where role.conference = ?");
@@ -165,7 +165,7 @@ public class UserManagerBean implements IUserManager{
query.setParameter(2, conference);
return query.getResultList();
}
@SuppressWarnings("unchecked")
public List<User> getPCMemberForArticle(Integer articleId){
Query query = em.createQuery("select a.pcMembers from Article a where a.id=?");
@@ -182,19 +182,19 @@ public class UserManagerBean implements IUserManager{
query.setParameter(2, pcMember);
return query.getResultList();
}
public Speciality getSpeciality(int SpecialityId){
Speciality spe = em.find(Speciality.class, SpecialityId);
return spe;
}
@SuppressWarnings("unchecked")
public List<Speciality> getSpecialities(){
Query query = em.createQuery("from Speciality");
return query.getResultList();
}
public void addSpeciality(String name){
try{
ut.begin();
@@ -230,7 +230,7 @@ public class UserManagerBean implements IUserManager{
}
}
}
public void addSpecialityToUser(int specialityId,String login){
try {
ut.begin();
@@ -265,14 +265,14 @@ public class UserManagerBean implements IUserManager{
}
}
}
@SuppressWarnings("unchecked")
public List<Speciality> getSpecialitiesFromUser(String login){
Query query = em.createQuery("select user.specialities from User user WHERE user.login=?");
query.setParameter(1, login);
return query.getResultList();
}
public boolean specialityExists(Speciality spe){
List<Speciality> list = this.getSpecialities();
for (Speciality spe2 : list) {
@@ -282,12 +282,12 @@ public class UserManagerBean implements IUserManager{
}
return false;
}
/*
*
* methodes de Roles
*/
public List<Role> getRoles() {
// TODO Auto-generated method stub
return null;
@@ -297,15 +297,15 @@ public class UserManagerBean implements IUserManager{
try {
User user = em.find(User.class, login);
Conference conference = em.find(Conference.class, conferenceId);
ut.begin();
Role newRole = new Role();
newRole.setUser(user);
newRole.setConference(conference);
newRole.setType(role);
em.persist(newRole);
ut.commit();
} catch (Exception e) {
try {
@@ -334,7 +334,7 @@ public class UserManagerBean implements IUserManager{
}
}
}
@SuppressWarnings("unchecked")
public List<InvitationToken> getInvitationTokensForEmail(String email) {
Query query = em.createQuery("from InvitationToken where email=?");
@@ -344,12 +344,16 @@ public class UserManagerBean implements IUserManager{
public void useInvitationTokenOnUser(String userLogin,
InvitationTokenPK tokenId) {
InvitationToken token = em.find(InvitationToken.class,tokenId);
addRoleForConference(userLogin, token.getRole(), token.getConference().getId());
User user = getUserByEmail(tokenId.email);
if(user==null){
return;
}
try {
ut.begin();
InvitationToken token = em.find(InvitationToken.class,tokenId);
Role role = new Role(token.getRole(),user,token.getConference());
em.remove(token);
em.persist(role);
ut.commit();
} catch (Exception e) {
try {
@@ -379,6 +383,7 @@ public class UserManagerBean implements IUserManager{
}
public User getUserByEmail(String email) {
email = email.toLowerCase();
Query query = em.createQuery("from User where email=?");
query.setParameter(1, email);
try{
@@ -388,6 +393,4 @@ public class UserManagerBean implements IUserManager{
return null;
}
}
}