Index: src/main/java/com/napa/pulse/controller/rest/VirtualSiteRestController.java =================================================================== diff -u -r6b5a553c729a1d10fac16a1732b2d0de6d2afab3 -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/java/com/napa/pulse/controller/rest/VirtualSiteRestController.java (.../VirtualSiteRestController.java) (revision 6b5a553c729a1d10fac16a1732b2d0de6d2afab3) +++ src/main/java/com/napa/pulse/controller/rest/VirtualSiteRestController.java (.../VirtualSiteRestController.java) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -189,4 +189,16 @@ return gson.toJson(true); } + /** + * + * @param accessItemId + * @return + */ + @Track + @RequestMapping(value = "auth/get-role-ids/{accessItemId}", method = RequestMethod.GET) + public String getAllowedRoleIds(@JwtToken(PulseConstants.JWT_USER_DETAILS) JwtUserData jwtUserData, + @PathVariable("accessItemId") Integer accessItemId, HttpServletResponse response) { + return gson.toJson(vsService.getAllowedIds(accessItemId)); + } + } Index: src/main/java/com/napa/pulse/dao/impl/VirtualSiteDAOImpl.java =================================================================== diff -u -r7a8940361727ccee5cd5df63b0c5a9f5b576d4f5 -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/java/com/napa/pulse/dao/impl/VirtualSiteDAOImpl.java (.../VirtualSiteDAOImpl.java) (revision 7a8940361727ccee5cd5df63b0c5a9f5b576d4f5) +++ src/main/java/com/napa/pulse/dao/impl/VirtualSiteDAOImpl.java (.../VirtualSiteDAOImpl.java) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -8,11 +8,14 @@ import com.napa.pulse.entity.security.User; import com.napa.pulse.utils.ROLE; import com.opencsv.CSVWriter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.jdbc.core.simple.SimpleJdbcCall; +import org.springframework.jdbc.support.rowset.SqlRowSet; import org.springframework.stereotype.Repository; import javax.servlet.http.HttpServletResponse; @@ -24,17 +27,16 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; /** * @author Mr T */ @Repository public class VirtualSiteDAOImpl implements VirtualSiteDAO { + private static final Logger LOGGER = LoggerFactory.getLogger(VirtualSiteDAOImpl.class); + @Autowired private JdbcTemplate jdbcTemplate; @@ -394,4 +396,22 @@ toSiteId, fromSiteId); } + @Override + public List getAllowedIds(Integer accessItemId) { + try { + List roleIds = new ArrayList<>(); + SqlRowSet rs = jdbcTemplate.queryForRowSet("SELECT ROLE_ID FROM ROLE_ACCESS WHERE ACCESS_ITEM_ID = ?", accessItemId); + while (rs.next()) { + roleIds.add(rs.getInt("ROLE_ID")); + } + LOGGER.info(" Executing : getAllowed() " + roleIds.size() + " roles having accessId = " + accessItemId); + return roleIds; + } catch (Exception e) { + LOGGER.error(" Error in getAllowedIds() , accessItemId = ", accessItemId); + LOGGER.error(e.getMessage()); + List al = new ArrayList<>(); + return al; + } + } + } \ No newline at end of file Index: src/main/java/com/napa/pulse/dao/interfaces/VirtualSiteDAO.java =================================================================== diff -u -rb8a5ab967d445a2351975a4a420103a3c331dada -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/java/com/napa/pulse/dao/interfaces/VirtualSiteDAO.java (.../VirtualSiteDAO.java) (revision b8a5ab967d445a2351975a4a420103a3c331dada) +++ src/main/java/com/napa/pulse/dao/interfaces/VirtualSiteDAO.java (.../VirtualSiteDAO.java) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -99,4 +99,9 @@ */ void linkVirtualSite(int virtualSiteId, int actualSiteId); + /** + * @param accessItemId + */ + List getAllowedIds (Integer accessItemId); + } \ No newline at end of file Index: src/main/java/com/napa/pulse/service/impl/VirtualSiteServiceImpl.java =================================================================== diff -u -rbe92f77f11e0334ea9b3a6ad6df77288d58fbfee -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/java/com/napa/pulse/service/impl/VirtualSiteServiceImpl.java (.../VirtualSiteServiceImpl.java) (revision be92f77f11e0334ea9b3a6ad6df77288d58fbfee) +++ src/main/java/com/napa/pulse/service/impl/VirtualSiteServiceImpl.java (.../VirtualSiteServiceImpl.java) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -98,4 +98,9 @@ vsDao.linkVirtualSite(virtualSiteId, actualSiteId); } + @Override + public List getAllowedIds(Integer accessItemId){ + return vsDao.getAllowedIds(accessItemId); + } + } \ No newline at end of file Index: src/main/java/com/napa/pulse/service/interfaces/VirtualSiteService.java =================================================================== diff -u -ra189a7d62fb2ea4c9cdef16d4cbb8583a929d80b -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/java/com/napa/pulse/service/interfaces/VirtualSiteService.java (.../VirtualSiteService.java) (revision a189a7d62fb2ea4c9cdef16d4cbb8583a929d80b) +++ src/main/java/com/napa/pulse/service/interfaces/VirtualSiteService.java (.../VirtualSiteService.java) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -99,4 +99,9 @@ */ void linkVirtualSite(int virtualSiteId, int actualSiteId); + /** + * @param accessItemId + */ + List getAllowedIds (Integer accessItemId); + } \ No newline at end of file Index: src/main/webapp/app/src/repositories/siteGroupRepo.js =================================================================== diff -u -rb5d4224bb65d694002dded521398b68fab3a0b4a -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/webapp/app/src/repositories/siteGroupRepo.js (.../siteGroupRepo.js) (revision b5d4224bb65d694002dded521398b68fab3a0b4a) +++ src/main/webapp/app/src/repositories/siteGroupRepo.js (.../siteGroupRepo.js) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -155,7 +155,14 @@ }).then(function(res) { return res.data; }); - } + }, + + getRoleId: function (accessItemId) { + return $http({ + url: "auth/get-role-ids/" + accessItemId , + method: "get", + }).then((res) => res.data); + } }; } ); Index: src/main/webapp/app/src/siteModule/siteCtrl.js =================================================================== diff -u -r9622caeae964868e1c03130a07f078e753176937 -r070faf52d9285efc773269ea2fcdd474093aa952 --- src/main/webapp/app/src/siteModule/siteCtrl.js (.../siteCtrl.js) (revision 9622caeae964868e1c03130a07f078e753176937) +++ src/main/webapp/app/src/siteModule/siteCtrl.js (.../siteCtrl.js) (revision 070faf52d9285efc773269ea2fcdd474093aa952) @@ -449,12 +449,20 @@ }); }; + $scope.vm.allowedRoleIdArray = []; + + $scope.checkRoles = async () => { + $scope.vm.allowedRoleIdArray = (await SiteGroupRepo.getRoleId(30)) || []; + } + + $scope.checkRoles(); + $scope.showVirtualSiteEditIcon = site => { return ( $rootScope.accessItems[30] && site.virtualSiteFlag && (site.virtualSiteFlag === 1 || site.virtualSiteFlag === '1') && - (site.createdUserId == $scope.userId || $scope.roleId == 1) + (site.createdUserId == $scope.userId || $scope.vm.allowedRoleIdArray.includes($scope.roleId) || site.createdUserId == $rootScope.currentUser.userId) ); };