]> git.mxchange.org Git - juser-core.git/commitdiff
added flag for public user profiles + named query for search such profiles
authorRoland Haeder <roland@mxchange.org>
Wed, 14 Oct 2015 10:07:01 +0000 (12:07 +0200)
committerRoland Haeder <roland@mxchange.org>
Wed, 14 Oct 2015 10:11:51 +0000 (12:11 +0200)
Signed-off-by:Roland Häder <roland@mxchange.org>

src/org/mxchange/jusercore/model/user/LoginUser.java
src/org/mxchange/jusercore/model/user/User.java

index 194ce0317dc09a106a0e73fbbef724d8947999f8..4995ee738e64ba5adbc8aea96679f2b11887f9b1 100644 (file)
@@ -65,7 +65,8 @@ import org.mxchange.jusercore.model.user.status.UserAccountStatus;
                        @NamedQuery (name = "AllUserNames", query = "SELECT DISTINCT u.userName FROM users AS u ORDER BY u.userId ASC"),
                        @NamedQuery (name = "AllEmailAddresses", query = "SELECT DISTINCT c.contactEmailAddress FROM contacts AS c ORDER BY c.contactId ASC"),
                        @NamedQuery (name = "SearchUserName", query = "SELECT u FROM users AS u WHERE LOWER(u.userName) LIKE LOWER(:param)"),
-                       @NamedQuery (name = "SearchEmailAddress", query = "SELECT u FROM users AS u INNER JOIN contacts AS c ON u.userContact = c WHERE LOWER(c.contactEmailAddress) LIKE LOWER(:param)")
+                       @NamedQuery (name = "SearchEmailAddress", query = "SELECT u FROM users AS u INNER JOIN contacts AS c ON u.userContact = c WHERE LOWER(c.contactEmailAddress) LIKE LOWER(:param)"),
+                       @NamedQuery (name = "AllPublicUsers", query = "SELECT u FROM users AS u WHERE u.userAccountStatus LIKE 'CONFIRMED' AND u.userPublicProfile = TRUE")
                }
 )
 public class LoginUser implements User {
@@ -131,10 +132,21 @@ public class LoginUser implements User {
        @Column (name = "user_name", nullable = false, length = 20)
        private String userName;
 
+       /**
+        * Whether the user wants a public profile. This means that it can be viewed
+        * from the Internet by everyone (only profile, no personal data, this needs
+        * explicit agreement) and it can be found for sharing addresses with.
+        */
+       @Basic (optional = false)
+       @Column (name = "user_public_profile_flag", nullable = false)
+       private Boolean userPublicProfile;
+
        /**
         * Default constructor
         */
        public LoginUser () {
+               // Default is not public
+               this.userPublicProfile = Boolean.FALSE;
        }
 
        @Override
@@ -246,6 +258,16 @@ public class LoginUser implements User {
                this.userName = userName;
        }
 
+       @Override
+       public Boolean getUserPublicProfile () {
+               return this.userPublicProfile;
+       }
+
+       @Override
+       public void setUserPublicProfile (final Boolean userPublicProfile) {
+               this.userPublicProfile = userPublicProfile;
+       }
+
        @Override
        public int hashCode () {
                int hash = 5;
index 8c3b1a0958f9cb40957d81a61d223bbd231d670c..236d8d1f5aaccc5bca8d9ce74e3bcd2170c1e93c 100644 (file)
@@ -147,6 +147,20 @@ public interface User extends Serializable {
         */
        public void setUserName (final String customerNumber);
 
+       /**
+        * Getter for public user profile flag
+        * <p>
+        * @return Whether the user has a public profile
+        */
+       public Boolean getUserPublicProfile ();
+
+       /**
+        * Setter for public user profile flag
+        * <p>
+        * @param userPublicProfile Whether the user has a public profile
+        */
+       public void setUserPublicProfile (final Boolean userPublicProfile);
+
        /**
         * Checks if object is a User instance and whether it matches with this
         * object.