Jean-Francois Leveque

Protection collision sequence, Uer creation ~OK (manque retour liste), User modification en travaux

......@@ -44,6 +44,16 @@
<version>6.0</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.2.10</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.2.10</version>
</dependency>
<!-- **** FRAMEWORK : JSF + CDI **** -->
<dependency>
......
......@@ -7,7 +7,8 @@ import javax.persistence.*;
public class Country /* extends org.roliste.data.DbEntity */ {
// @Column(name = "ID_PAYS")
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(strategy = GenerationType.IDENTITY) /* Permet la population */
@Column(name="COUNTRY_ID")
private int countryId;
private String countryName;
......
......@@ -9,7 +9,7 @@ public class Publisher /* extends org.roliste.data.DbLinkableEntity */ {
// TODO L'éventuel usage de Linkable reste à confirmer https://tree.taiga.io/project/jr-utily-grog-v3/us/48
// TODO Attention, en v2 Linkable implique Traceable (journalisable) qui devrait aussi être évalué
@Id
// @Column(name = "ID_EDITEUR")
@Column(name = "PUBLISHER_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private int publisherId;
......@@ -19,7 +19,7 @@ public class Publisher /* extends org.roliste.data.DbLinkableEntity */ {
@OneToOne
private User activeValidator;
@OneToMany
@OneToMany(mappedBy = "publisher")
private Set<PublisherRevision> revisions;
public int getPublisherId() {
......
......@@ -7,7 +7,10 @@ import java.sql.Timestamp;
public class PublisherRevision {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "PUBLISHER_REVISION_ID")
private int publisherRevisionId;
@ManyToOne
private Publisher publisher;
private String publisherName;
private String publisherStreetAddress;
private String publisherPostalCode;
......
......@@ -12,9 +12,9 @@ import java.util.*;
@Table(name="UserTable")
public class User /* extends org.roliste.data.DbTraceableEntity */ implements DisplayNameConfigurable /*, DbValidationEntity */ {
// @Column(name="ID_UTILISATEUR")
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(strategy = GenerationType.IDENTITY) /* Permet la population */
@Column(name="USER_ID")
private int userId;
// TODO traiter Traceable
......@@ -120,6 +120,7 @@ public class User /* extends org.roliste.data.DbTraceableEntity */ implements Di
* The {link org.roliste.data.db.UserRole}s for this user.
*/
@ManyToMany
@Column(name = "USER_ROLE_ID")
private List<UserRole> roles;
/**
......@@ -425,7 +426,7 @@ public class User /* extends org.roliste.data.DbTraceableEntity */ implements Di
/**
* The list of attributes / properties for this user.
*/
@OneToMany
@OneToMany(mappedBy = "user")
private List<UserAttribute> userAttributes;
/**
......
......@@ -16,6 +16,7 @@ public class UserAttribute {
* The linked user.
*/
@ManyToOne
@JoinColumn(name = "USER_ID")
private User user;
/**
......@@ -49,6 +50,7 @@ public class UserAttribute {
* The linked property.
*/
@ManyToOne
@JoinColumn(name = "USER_PROPERTY_ID")
private UserProperty userProperty;
/**
......
......@@ -5,7 +5,8 @@ import javax.persistence.*;
@Entity
public class UserProperty {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(strategy = GenerationType.IDENTITY) /* Permet la population */
@Column(name="USER_PROPERTY_ID")
private int userPropertyId;
/**
......
......@@ -19,7 +19,8 @@ import javax.persistence.*;
public class UserRole /* extends org.roliste.data.DbEntity */
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(strategy = GenerationType.IDENTITY) /* Permet la population */
@Column(name="USER_ROLE_ID")
private int userRoleId;
/**
......@@ -30,7 +31,8 @@ public class UserRole /* extends org.roliste.data.DbEntity */
/**
* The {@link User}s for this user role.
*/
@ManyToMany
@ManyToMany(mappedBy = "roles")
@Column(name = "USER_ID")
private Set<User> users;
/**
......
......@@ -3,11 +3,18 @@ package org.legrog.presentation;
import org.legrog.application.SharedService;
import org.legrog.application.UserService;
import org.legrog.entities.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -19,6 +26,7 @@ public class UpdateUserBean {
@Inject
private SharedService sharedService;
@ManagedProperty("#{param.userId}")
private int userId;
private String username;
......@@ -97,6 +105,37 @@ public class UpdateUserBean {
return "success";
}
public String prepareUpdate(int userId) {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Logger logger = LoggerFactory.getLogger(UpdateUserBean.class);
logger.info("prepareUpdate");
logger.info("userId ="+userId);
if (userId != 0) {
User user = userService.findUserById(userId);
if (user != null) {
activated = user.isActivated();
anonymous = user.isAnonymous();
userAttributes = user.getAttributes();
criticProvider = user.isCriticProvider();
displayNameMask = user.getDisplayNameMask();
email = user.getEmail();
firstName = user.getFirstName();
lastName = user.getLastName();
nickName = user.getNickName();
presentation = user.getPresentation();
roles = user.getRoles();
if (roles == null) {
roles = new ArrayList<UserRole>();
}
username = user.getUsername();
visible = user.isVisible();
return "updateUser.xhtml";
}
}
return "listUsers.xhtml";
}
public String update() {
User user = userService.findUserById(userId);
user.setActivated(activated);
......@@ -198,6 +237,8 @@ public class UpdateUserBean {
@PostConstruct
public void init() {
Logger logger = LoggerFactory.getLogger(UpdateUserBean.class);
logger.info("init");
allDisplayNameMasks = sharedService.getAllDisplayNameMasks();
availableUserRoles = sharedService.getAvailableUserRoles();
availableUserProperties = sharedService.getAvailableUserProperties();
......
......@@ -20,9 +20,16 @@ INSERT INTO UserProperty VALUES (2, 'avatar', 'Lien vers une icône ou une photo
INSERT INTO UserProperty VALUES (3, 'tagline', 'Ligne de présentation pour les contributeurs', TRUE);
INSERT INTO UserProperty VALUES (4, 'taille_listes', 'Nombre d''éléments affichés dans les listes', TRUE);
INSERT INTO UserProperty VALUES (5, 'skin', 'Thème visuel', TRUE);
INSERT INTO UserTable (userId, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (1, 'one', 'one', 'Derrick', 'Moss', 'one', 'one@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (userId, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (2, 'two', 'two', 'Portia', 'Lin', 'two', 'two@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (userId, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (3, 'three', 'three', 'Marcus', 'Boone', 'three', 'three@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (userId, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (4, 'four', 'four', 'Ryo', 'Tetsuda', 'four', 'four@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (userId, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (5, 'five', 'five', 'Emily', 'Kolburn', 'five', 'five@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (userId, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (6, 'six', 'six', 'Kal', 'Varrik', 'six', 'six@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (USER_ID, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (1, 'one', 'one', 'Derrick', 'Moss', 'one', 'one@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (USER_ID, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (2, 'two', 'two', 'Portia', 'Lin', 'two', 'two@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (USER_ID, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (3, 'three', 'three', 'Marcus', 'Boone', 'three', 'three@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (USER_ID, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (4, 'four', 'four', 'Ryo', 'Tetsuda', 'four', 'four@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (USER_ID, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (5, 'five', 'five', 'Emily', 'Kolburn', 'five', 'five@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable (USER_ID, username, password, firstName, lastName, nickname, email, activated, anonymous, visible, criticProvider) VALUES (6, 'six', 'six', 'Kal', 'Varrik', 'six', 'six@raza.org', TRUE, FALSE, TRUE, TRUE);
INSERT INTO UserTable_UserRole VALUES (1,2);
INSERT INTO UserTable_UserRole VALUES (2,2);
INSERT INTO UserTable_UserRole VALUES (3,2);
INSERT INTO UserTable_UserRole VALUES (4,2);
INSERT INTO UserTable_UserRole VALUES (5,2);
INSERT INTO UserTable_UserRole VALUES (6,2);
INSERT INTO UserTable_UserRole VALUES (5,4);
......
......@@ -61,9 +61,8 @@
</h:commandLink>-->
</p:column>
<p:column>
<h:commandLink action="add">
<h:commandLink action="#{updateUserBean.prepareUpdate(user.userId)}">
<img src="/images/structure/vide.gif" class="icEdit" alt="Modifier" title="Modifier" />
<f:setPropertyActionListener value="#{user.userId}" target="updateUserBean.userId" />
</h:commandLink>
</p:column>
<p:column styleClass="third" sortBy="#{user.username}">
......