X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=portal-BE%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportal%2Fdomain%2Fdb%2Ffn%2FFnUserRole.java;fp=portal-BE%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportal%2Fdomain%2Fdb%2Ffn%2FFnUserRole.java;h=06320c4c82b707df77d2838693a80250c5053e7d;hb=009040bc056dee5e26e43244422e8e0b9c47144a;hp=4e783764c4884826e0715d7c52638e3db5059d03;hpb=0cd9645a9dc83b9a5a2eddcc15cdfaf30fdade3a;p=portal.git diff --git a/portal-BE/src/main/java/org/onap/portal/domain/db/fn/FnUserRole.java b/portal-BE/src/main/java/org/onap/portal/domain/db/fn/FnUserRole.java index 4e783764..06320c4c 100644 --- a/portal-BE/src/main/java/org/onap/portal/domain/db/fn/FnUserRole.java +++ b/portal-BE/src/main/java/org/onap/portal/domain/db/fn/FnUserRole.java @@ -43,6 +43,8 @@ package org.onap.portal.domain.db.fn; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Column; +import javax.persistence.ColumnResult; +import javax.persistence.ConstructorResult; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; @@ -56,14 +58,17 @@ import javax.persistence.NamedNativeQuery; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToOne; +import javax.persistence.SqlResultSetMapping; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.Valid; import javax.validation.constraints.Digits; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.onap.portal.domain.dto.ecomp.UserRole; /* CREATE TABLE `fn_user_role` ( @@ -91,16 +96,56 @@ CREATE TABLE `fn_user_role` ( name = "FnUserRole.retrieveCachedAppRolesForUser", query = "FROM FnUserRole where user_id= :userId" + " and user_id= :userId" - + " and app_id= :appId") + + " and app_id= :appId"), + @NamedNativeQuery( + name = "FnUserRole.isSuperAdmin", + query = "SELECT" + + " user.USER_ID as userId," + + " user.org_user_id as orgUserId," + + " userrole.ROLE_ID as roleId," + + " userrole.APP_ID as appId" + + " FROM" + + " fn_user_role userrole" + + " INNER JOIN fn_user user ON user.USER_ID = userrole.USER_ID" + + " WHERE" + + " user.org_user_id = :orgUserId" + + " AND userrole.ROLE_ID =:roleId" + + " AND userrole.APP_ID =:appId", + resultSetMapping = "UserRole", + resultClass = UserRole.class + ) }) +@SqlResultSetMapping( + name = "UserRole", + classes = { + @ConstructorResult( + targetClass = UserRole.class, + columns = { + @ColumnResult(name = "userId", type = Long.class), + @ColumnResult(name = "orgUserId", type = String.class), + @ColumnResult(name = "roleId", type = Long.class), + @ColumnResult(name = "appId", type = Long.class) + } + ) + } +) + @NamedQueries({ @NamedQuery( name = "FnUserRole.getAdminUserRoles", query = "FROM FnUserRole fn " - + "WHERE fn.userId.userId = :USERID " - + "AND fn.roleId.roleId = :ROLEID " - + "AND fn.appId.appId = :APPID") + + "WHERE fn.userId.userId = :userId " + + "AND fn.roleId.roleId = :roleId " + + "AND fn.appId.appId = :appId"), + @NamedQuery( + name = "FnUserRole.getUserRolesForRoleIdAndAppId", + query = "FROM\n" + + " FnUserRole userrole\n" + + "WHERE\n" + + " userrole.roleId.roleId = :roleId\n" + + " AND userrole.appId.appId = :appId" + ) }) @Table( @@ -114,7 +159,7 @@ CREATE TABLE `fn_user_role` ( }) @NoArgsConstructor @AllArgsConstructor - +@Builder @Getter @Setter @Entity