diff --git a/pkg/api/overview.go b/pkg/api/overview.go index 4a44751..c35c977 100644 --- a/pkg/api/overview.go +++ b/pkg/api/overview.go @@ -13,11 +13,25 @@ type Counter struct { } func OverviewCounterEndPoint(c echo.Context) error { - countUser, _ := model.CountUser() - countOnlineSession, _ := model.CountOnlineSession() - credential, _ := model.CountCredential() - asset, _ := model.CountAsset() + account, _ := GetCurrentAccount(c) + var ( + countUser int64 + countOnlineSession int64 + credential int64 + asset int64 + ) + if model.TypeUser == account.Type { + countUser, _ = model.CountUser() + countOnlineSession, _ = model.CountOnlineSession() + credential, _ = model.CountCredentialByUserId(account.ID) + asset, _ = model.CountAssetByUserId(account.ID) + } else { + countUser, _ = model.CountUser() + countOnlineSession, _ = model.CountOnlineSession() + credential, _ = model.CountCredential() + asset, _ = model.CountAsset() + } counter := Counter{ User: countUser, OnlineSession: countOnlineSession, diff --git a/pkg/model/asset.go b/pkg/model/asset.go index bd24932..6f3c236 100644 --- a/pkg/model/asset.go +++ b/pkg/model/asset.go @@ -164,6 +164,24 @@ func CountAsset() (total int64, err error) { return } +func CountAssetByUserId(userId string) (total int64, err error) { + db := global.DB.Joins("left join resource_sharers on assets.id = resource_sharers.resource_id") + + db = db.Where("assets.owner = ? or resource_sharers.user_id = ?", userId, userId) + + // 查询用户所在用户组列表 + userGroupIds, err := FindUserGroupIdsByUserId(userId) + if err != nil { + return 0, err + } + + if userGroupIds != nil && len(userGroupIds) > 0 { + db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) + } + err = db.Find(&Asset{}).Count(&total).Error + return +} + func FindAssetTags() (o []string, err error) { var assets []Asset err = global.DB.Not("tags = ?", "").Find(&assets).Error diff --git a/pkg/model/credential.go b/pkg/model/credential.go index dcfcf60..359aa1b 100644 --- a/pkg/model/credential.go +++ b/pkg/model/credential.go @@ -103,3 +103,21 @@ func CountCredential() (total int64, err error) { err = global.DB.Find(&Credential{}).Count(&total).Error return } + +func CountCredentialByUserId(userId string) (total int64, err error) { + db := global.DB.Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id") + + db = db.Where("credentials.owner = ? or resource_sharers.user_id = ?", userId, userId) + + // 查询用户所在用户组列表 + userGroupIds, err := FindUserGroupIdsByUserId(userId) + if err != nil { + return 0, err + } + + if userGroupIds != nil && len(userGroupIds) > 0 { + db = db.Or("resource_sharers.user_group_id in ?", userGroupIds) + } + err = db.Find(&Credential{}).Count(&total).Error + return +} diff --git a/web/src/components/dashboard/Dashboard.js b/web/src/components/dashboard/Dashboard.js index a2a1ec2..697b19b 100644 --- a/web/src/components/dashboard/Dashboard.js +++ b/web/src/components/dashboard/Dashboard.js @@ -7,6 +7,7 @@ import './Dashboard.css' import {Link} from "react-router-dom"; import {Area} from '@ant-design/charts'; import Logout from "../user/Logout"; +import {isAdmin} from "../../service/permission"; const routes = [ @@ -97,7 +98,7 @@ class Dashboard extends Component { - + }/> @@ -122,7 +123,7 @@ class Dashboard extends Component { - + }/>