@ -90,39 +90,60 @@ public class StngBean extends AbstractBean {
boolean isAdmin = userInfo . isAdmin ( ) ;
List < String > taskListForServer = FimsConf . get ( ) . getTasks ( ) ;
//모든 업무
List < String > taskList = codeBean . getCodeList ( ( new CodeQuery ( ) ) . setGroupIDs ( "FIM054" ) )
. stream ( ) . map ( item - > item . string ( "CODE" ) ) . toList ( ) ;
//사용가능한 업무
//서버에서 사용가능한 업무
List < String > taskListForServer = FimsConf . get ( ) . getTasks ( ) ;
//사용자별 사용가능한 업무
List < String > availableTaskList = new ArrayList < String > ( ) ;
if ( userInfo . getInstitute ( ) . equals ( "ADMIN00" ) ) { //최고관리자
if ( userInfo . getInstitute ( ) . equals ( "ADMIN00" ) ) { // 1. 최고관리자
availableTaskList = taskList ;
} else if ( isAdmin ) { //시스템 관리자
} else {
Map < String , Object > info = userInfo . getInfo ( ) ;
if ( info = = null | | info . get ( "sggCd" ) = = null | | info . get ( "sggCd" ) . equals ( "" ) ) {
ogdpBean . initUserInfo ( userInfo ) ;
}
availableTaskList = taskBean . getTasks ( ( new CmmnQuery ( ) ) . setSggCd ( ( String ) userInfo . getInfo ( ) . get ( "sggCd" ) ) . setUseYn ( "Y" ) )
. stream ( ) . map ( item - > item . string ( "TASK_SE_CD" ) ) . toList ( ) ;
//사용자의 시군구에서 사용가능한 업무
List < String > taskListForSgg = taskBean . getTasks ( ( new CmmnQuery ( ) ) . setSggCd ( ( String ) userInfo . getInfo ( ) . get ( "sggCd" ) ) . setUseYn ( "Y" ) )
. stream ( ) . map ( item - > item . string ( "TASK_SE_CD" ) ) . toList ( ) ;
} else { //업무관리자,업무사용자,일반사용자
if ( isAdmin ) { //2.시스템관리자
for ( String forSgg : taskListForSgg ) {
availableTaskList . add ( forSgg ) ;
}
for ( String forServer : taskListForServer ) {
availableTaskList . add ( forServer ) ;
}
} else {
List < Authority > authorities = userInfo . getAuthorities ( ) ;
List < String > forServerAndSgg = new ArrayList < String > ( ) ;
for ( String forServer : taskListForServer ) {
for ( String forSgg : taskListForSgg ) {
if ( forServer . equals ( forSgg ) ) {
forServerAndSgg . add ( forSgg ) ;
}
}
}
if ( authorities ! = null & & ! authorities . isEmpty ( ) ) {
for ( Authority authority : authorities ) {
String authId = authority . getId ( ) ;
for ( String task : taskList ) {
if ( authId . equals ( "ROLE_TASK_ADMIN" ) | | authId . contains ( task ) ) {
if ( taskListForServer . contains ( task ) ) {
availableTaskList . add ( task ) ;
if ( userInfo . hasAuthorities ( "ROLE_TASK_ADMIN" ) ) { //3.업무관리자
availableTaskList = forServerAndSgg ;
} else { //4.업무사용자,일반사용자
List < Authority > authorities = userInfo . getAuthorities ( ) ;
if ( authorities ! = null & & ! authorities . isEmpty ( ) ) {
for ( String task : forServerAndSgg ) {
for ( Authority authority : authorities ) {
String authId = authority . getId ( ) ;
if ( authId . contains ( task ) ) {
availableTaskList . add ( task ) ;
}
}
}
}
@ -142,12 +163,17 @@ public class StngBean extends AbstractBean {
return ;
}
DataObject defaultTask = stngMapper . selectDefaultTask ( userInfo . getId ( ) ) ;
DataObject defaultTask Info = stngMapper . selectDefaultTask ( userInfo . getId ( ) ) ;
if ( defaultTask = = null ) {
if ( defaultTask Info = = null | | defaultTaskInfo . string ( "TASK_SE_CD" ) . equals ( "" ) ) {
userInfo . getInfo ( ) . put ( "defaultTask" , "" ) ;
} else {
userInfo . getInfo ( ) . put ( "defaultTask" , defaultTask . string ( "TASK_SE_CD" ) ) ;
String defaultTask = defaultTaskInfo . string ( "TASK_SE_CD" ) ;
if ( ! availableTaskList . contains ( defaultTask ) ) {
userInfo . getInfo ( ) . put ( "defaultTask" , "" ) ;
} else {
userInfo . getInfo ( ) . put ( "defaultTask" , defaultTask ) ;
}
}
}