@ -221,7 +221,7 @@ func (g *GainUserPower) GetUserPower() (powerInfo SendUserPower) {
#
#
* /
* /
func ( g * GainUserPower ) MakeSearchSql ( gormDb * gorm . DB , userCont modelshr . ManCont , isOdeb string ) * gorm . DB {
func ( g * GainUserPower ) MakeSearchSql ( gormDb * gorm . DB , userCont modelshr . ManCont , isOdeb string , appFormPower AppMyPowerTable ) * gorm . DB {
powerInfo := g . GetUserPower ( )
powerInfo := g . GetUserPower ( )
// js, _ := json.Marshal(powerInfo)
// js, _ := json.Marshal(powerInfo)
fmt . Printf ( "\n\n\n等级-----%v--- ---->%v\n\n\n" , isOdeb , powerInfo )
fmt . Printf ( "\n\n\n等级-----%v--- ---->%v\n\n\n" , isOdeb , powerInfo )
@ -254,7 +254,28 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
// gormDb = gormDb.Where("f.`creater` = ?", userCont.Key)
// gormDb = gormDb.Where("f.`creater` = ?", userCont.Key)
}
}
}
}
//确定可以看到数据的边界
//1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有
switch appFormPower . Scope {
case 2 :
gormDb = gormDb . Where ( "f.`createrPositon` = ?" , userCont . Key )
case 3 :
var sunOrg GetOrgAllParent
sunOrg . GetOrgSun ( userCont . MainDeparment )
sunOrg . Id = append ( sunOrg . Id , userCont . MainDeparment )
gormDb = gormDb . Where ( "f.`createrOrg` IN ?" , sunOrg . Id )
case 4 :
var sunOrg GetOrgAllParent
sunOrg . GetOrgSun ( userCont . Company )
sunOrg . Id = append ( sunOrg . Id , userCont . MainDeparment )
gormDb = gormDb . Where ( "f.`createrOrg` IN ?" , sunOrg . Id )
case 5 :
gormDb = gormDb . Where ( "f.`createrOrg` IN ?" , appFormPower . ScopeManAry )
case 6 :
default :
}
gormDb = gormDb . Where ( "f.`creater` = ?" , userCont . Key )
return gormDb
return gormDb
}
}
@ -264,7 +285,7 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
@ 时间 : 2025 - 11 - 21 0 9 : 38 : 23
@ 时间 : 2025 - 11 - 21 0 9 : 38 : 23
@ 功能 : 根据系统参数获取权限
@ 功能 : 根据系统参数获取权限
* /
* /
func GetSystemPower ( powerType , systemTyep , powerId , systemId string ) ( powerInfo SendSystemPower ) {
func GetSystemPower ( powerType , systemTyep , powerId , systemId string ) ( powerInfo SendSystemPower , tableBut [ ] string ) {
powerInfo . PowerType = powerType
powerInfo . PowerType = powerType
powerInfo . SystemTyep = systemTyep
powerInfo . SystemTyep = systemTyep
powerInfo . PowerId = powerId
powerInfo . PowerId = powerId
@ -287,13 +308,16 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo
default :
default :
}
}
err := gormDb . First ( & masterPower ) . Error
err := gormDb . First ( & masterPower ) . Error
if masterPower . AppButPower != "" {
json . Unmarshal ( [ ] byte ( masterPower . AppButPower ) , & tableBut )
}
if err != nil {
if err != nil {
if powerType == "person" {
if powerType == "person" {
var userInfo modelshr . PersonArchives
var userInfo modelshr . PersonArchives
userInfo . GetCont ( map [ string ] interface { } { "`key`" : powerId } , "`id`" , "`company`" , "`maindeparment`" , "`admin_org`" , "`position`" )
userInfo . GetCont ( map [ string ] interface { } { "`key`" : powerId } , "`id`" , "`company`" , "`maindeparment`" , "`admin_org`" , "`position`" )
var roleId [ ] int64
var roleId [ ] int64
overall . CONSTANT_DB_System_Permission . Model ( & modelssystempermission . SystemRole { } ) . Select ( "`id`" ) . Where ( "FIND_IN_SET(?, `roleuser`)" , powerId ) . Find ( & roleId )
overall . CONSTANT_DB_System_Permission . Model ( & modelssystempermission . SystemRole { } ) . Select ( "`id`" ) . Where ( "FIND_IN_SET(?, `roleuser`)" , powerId ) . Find ( & roleId )
powerInfo . SystemIsPick , powerInfo . PowerList = PersonalAuthorization ( systemTyep , systemId , roleId , userInfo )
powerInfo . SystemIsPick , powerInfo . PowerList , tableBut = PersonalAuthorization ( systemTyep , systemId , roleId , userInfo )
}
}
fmt . Printf ( "没有个人授权--->%v\n\n\n" , masterPower )
fmt . Printf ( "没有个人授权--->%v\n\n\n" , masterPower )
@ -344,7 +368,7 @@ func GetSystemPower(powerType, systemTyep, powerId, systemId string) (powerInfo
@ 时间 : 2025 - 12 - 05 0 9 : 19 : 0 8
@ 时间 : 2025 - 12 - 05 0 9 : 19 : 0 8
@ 功能 : 当个人没有设定自定义权限的时候返回其所在其他维度的赋权情况
@ 功能 : 当个人没有设定自定义权限的时候返回其所在其他维度的赋权情况
* /
* /
func PersonalAuthorization ( systemTyep , systemId string , roleId [ ] int64 , userInfo modelshr . PersonArchives ) ( isTrue bool , PowerList [ ] ItemInfo ) {
func PersonalAuthorization ( systemTyep , systemId string , roleId [ ] int64 , userInfo modelshr . PersonArchives ) ( isTrue bool , PowerList [ ] ItemInfo , tableBut [ ] string ) {
//获取角色相关授权
//获取角色相关授权
var masterPower [ ] modelssystempermission . AuthPower
var masterPower [ ] modelssystempermission . AuthPower
gormDb := overall . CONSTANT_DB_System_Permission . Model ( & masterPower ) . Where ( "`orgPowerType` = 'role' AND `orgOrUserKey` IN ? AND `appType` = ?" , roleId , systemTyep )
gormDb := overall . CONSTANT_DB_System_Permission . Model ( & masterPower ) . Where ( "`orgPowerType` = 'role' AND `orgOrUserKey` IN ? AND `appType` = ?" , roleId , systemTyep )
@ -363,6 +387,11 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
isTrue = true
isTrue = true
}
}
autId = append ( autId , v . Id )
autId = append ( autId , v . Id )
if v . AppButPower != "" {
var tbinfo [ ] string
json . Unmarshal ( [ ] byte ( v . AppButPower ) , & tbinfo )
tableBut = append ( tableBut , tbinfo ... )
}
}
}
if len ( autId ) > 0 {
if len ( autId ) > 0 {
@ -389,6 +418,13 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
isTrue = true
isTrue = true
}
}
}
}
if masterPowerPost . AppButPower != "" {
var tbinfo [ ] string
json . Unmarshal ( [ ] byte ( masterPowerPost . AppButPower ) , & tbinfo )
tableBut = append ( tableBut , tbinfo ... )
}
var poserListPost [ ] modelssystempermission . PowerInfo
var poserListPost [ ] modelssystempermission . PowerInfo
overall . CONSTANT_DB_System_Permission . Model ( & modelssystempermission . PowerInfo { } ) . Where ( "`authId` = ?" , masterPowerPost . Id ) . Find ( & poserListPost )
overall . CONSTANT_DB_System_Permission . Model ( & modelssystempermission . PowerInfo { } ) . Where ( "`authId` = ?" , masterPowerPost . Id ) . Find ( & poserListPost )
PowerList = append ( PowerList , mergePowerAry ( poserListPost , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( poserListPost , PowerList ) ... )
@ -396,48 +432,62 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
}
}
//根据行政组织
//根据行政组织
if userInfo . AdminOrg != 0 {
if userInfo . AdminOrg != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . AdminOrg )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . AdminOrg )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
} else if userInfo . MainDeparment != 0 {
} else if userInfo . MainDeparment != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . MainDeparment )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . MainDeparment )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
} else if userInfo . Company != 0 {
} else if userInfo . Company != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . Company )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . Company )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
}
}
}
}
} else if userInfo . Company != 0 {
} else if userInfo . Company != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . Company )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . Company )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
}
}
}
}
} else if userInfo . MainDeparment != 0 {
} else if userInfo . MainDeparment != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . MainDeparment )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . MainDeparment )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
} else if userInfo . Company != 0 {
} else if userInfo . Company != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . Company )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . Company )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
}
}
}
}
} else if userInfo . Company != 0 {
} else if userInfo . Company != 0 {
adOrgList , isTrues := OrgGetPower ( systemTyep , systemId , userInfo . Company )
adOrgList , isTrues , taButPwer := OrgGetPower ( systemTyep , systemId , userInfo . Company )
isTrue = isTrues
isTrue = isTrues
if len ( adOrgList ) > 0 {
if len ( adOrgList ) > 0 {
tableBut = append ( tableBut , taButPwer ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
PowerList = append ( PowerList , mergePowerAry ( adOrgList , PowerList ) ... )
}
}
}
}
var quchong [ ] string
for _ , v := range tableBut {
if ! IsInTrue [ string ] ( v , quchong ) {
quchong = append ( quchong , v )
}
}
tableBut = quchong
return
return
}
}
@ -447,7 +497,7 @@ func PersonalAuthorization(systemTyep, systemId string, roleId []int64, userInfo
@ 时间 : 2025 - 12 - 05 11 : 04 : 26
@ 时间 : 2025 - 12 - 05 11 : 04 : 26
@ 功能 : 根据行政组织获取授权
@ 功能 : 根据行政组织获取授权
* /
* /
func OrgGetPower ( systemTyep , systemId string , orgId int64 ) ( PowerList [ ] modelssystempermission . PowerInfo , isTrue bool ) {
func OrgGetPower ( systemTyep , systemId string , orgId int64 ) ( PowerList [ ] modelssystempermission . PowerInfo , isTrue bool , tableButPow [ ] string ) {
var masterPower modelssystempermission . AuthPower
var masterPower modelssystempermission . AuthPower
gormDb := overall . CONSTANT_DB_System_Permission . Model ( & masterPower ) . Where ( "`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?" , orgId , systemTyep )
gormDb := overall . CONSTANT_DB_System_Permission . Model ( & masterPower ) . Where ( "`orgPowerType` = 'org' AND `orgOrUserKey` = ? AND `appType` = ?" , orgId , systemTyep )
switch systemTyep {
switch systemTyep {
@ -464,6 +514,11 @@ func OrgGetPower(systemTyep, systemId string, orgId int64) (PowerList []modelssy
if masterPower . IsTrue == 1 {
if masterPower . IsTrue == 1 {
isTrue = true
isTrue = true
}
}
if masterPower . AppButPower != "" {
var tbinfo [ ] string
json . Unmarshal ( [ ] byte ( masterPower . AppButPower ) , & tbinfo )
tableButPow = append ( tableButPow , tbinfo ... )
}
overall . CONSTANT_DB_System_Permission . Model ( & modelssystempermission . PowerInfo { } ) . Where ( "`authId` = ?" , masterPower . Id ) . Find ( & PowerList )
overall . CONSTANT_DB_System_Permission . Model ( & modelssystempermission . PowerInfo { } ) . Where ( "`authId` = ?" , masterPower . Id ) . Find ( & PowerList )
return
return
}
}