mirror of
https://github.com/HangarMC/Hangar.git
synced 2025-03-13 15:39:18 +08:00
load org count into headerdata
Signed-off-by: MiniDigger <admin@minidigger.me>
This commit is contained in:
parent
f6c910f8f7
commit
ebba1fb597
@ -127,8 +127,7 @@ export default class Header extends HangarComponent {
|
||||
icon: 'mdi-book',
|
||||
title: this.$t('nav.new.project'),
|
||||
});
|
||||
// TODO get user orgs count
|
||||
if (0 - 1 < this.validations.maxOrgCount) {
|
||||
if (this.currentUser!.headerData.organizationCount - 1 < this.validations.maxOrgCount) {
|
||||
controls.push({
|
||||
link: '/organizations/new',
|
||||
icon: 'mdi-account-group',
|
||||
|
1
frontend/types/internal/users.d.ts
vendored
1
frontend/types/internal/users.d.ts
vendored
@ -33,6 +33,7 @@ declare module 'hangar-internal' {
|
||||
unresolvedFlags: number;
|
||||
projectApprovals: number;
|
||||
reviewQueueCount: number;
|
||||
organizationCount: number;
|
||||
}
|
||||
|
||||
interface HangarUser extends User, Table {
|
||||
|
@ -39,4 +39,7 @@ public interface OrganizationDAO {
|
||||
|
||||
@SqlQuery("SELECT * FROM organizations WHERE owner_id = :ownerId")
|
||||
List<OrganizationTable> getOrganizationsOwnedBy(long ownerId);
|
||||
|
||||
@SqlQuery("SELECT count(id) FROM organizations WHERE owner_id = :userId")
|
||||
long getOrganizationCount(long userId);
|
||||
}
|
||||
|
@ -61,14 +61,16 @@ public class HangarUser extends User implements Identified {
|
||||
private final long unresolvedFlags;
|
||||
private final long projectApprovals;
|
||||
private final long reviewQueueCount;
|
||||
private final long organizationCount;
|
||||
|
||||
public HeaderData(Permission globalPermission, long unreadNotifications, long unansweredInvites, long unresolvedFlags, long projectApprovals, long reviewQueueCount) {
|
||||
public HeaderData(Permission globalPermission, long unreadNotifications, long unansweredInvites, long unresolvedFlags, long projectApprovals, long reviewQueueCount, long organizationCount) {
|
||||
this.globalPermission = globalPermission;
|
||||
this.unreadNotifications = unreadNotifications;
|
||||
this.unansweredInvites = unansweredInvites;
|
||||
this.unresolvedFlags = unresolvedFlags;
|
||||
this.projectApprovals = projectApprovals;
|
||||
this.reviewQueueCount = reviewQueueCount;
|
||||
this.organizationCount = organizationCount;
|
||||
}
|
||||
|
||||
public Permission getGlobalPermission() {
|
||||
@ -95,6 +97,10 @@ public class HangarUser extends User implements Identified {
|
||||
return reviewQueueCount;
|
||||
}
|
||||
|
||||
public long getOrganizationCount() {
|
||||
return organizationCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "HeaderData{" +
|
||||
@ -104,6 +110,7 @@ public class HangarUser extends User implements Identified {
|
||||
", unresolvedFlags=" + unresolvedFlags +
|
||||
", projectApprovals=" + projectApprovals +
|
||||
", reviewQueueCount=" + reviewQueueCount +
|
||||
", organizationCount=" + organizationCount +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import io.papermc.hangar.model.common.Permission;
|
||||
import io.papermc.hangar.model.internal.user.HangarUser;
|
||||
import io.papermc.hangar.model.internal.user.HangarUser.HeaderData;
|
||||
import io.papermc.hangar.service.PermissionService;
|
||||
import io.papermc.hangar.service.internal.organizations.OrganizationService;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -35,13 +36,15 @@ public class UsersApiService extends HangarComponent {
|
||||
private final UsersApiDAO usersApiDAO;
|
||||
private final NotificationsDAO notificationsDAO;
|
||||
private final PermissionService permissionService;
|
||||
private final OrganizationService organizationService;
|
||||
|
||||
@Autowired
|
||||
public UsersApiService(HangarDao<UsersDAO> usersDAO, HangarDao<UsersApiDAO> usersApiDAO, HangarDao<NotificationsDAO> notificationsDAO, PermissionService permissionService) {
|
||||
public UsersApiService(HangarDao<UsersDAO> usersDAO, HangarDao<UsersApiDAO> usersApiDAO, HangarDao<NotificationsDAO> notificationsDAO, PermissionService permissionService, OrganizationService organizationService) {
|
||||
this.usersDAO = usersDAO.get();
|
||||
this.usersApiDAO = usersApiDAO.get();
|
||||
this.notificationsDAO = notificationsDAO.get();
|
||||
this.permissionService = permissionService;
|
||||
this.organizationService = organizationService;
|
||||
}
|
||||
|
||||
public <T extends User> T getUser(String name, Class<T> type) {
|
||||
@ -109,14 +112,15 @@ public class UsersApiService extends HangarComponent {
|
||||
long unresolvedFlags = globalPermission.has(Permission.ModNotesAndFlags) ? notificationsDAO.getUnresolvedFlagsCount() : 0;
|
||||
long projectApprovals = globalPermission.has(Permission.ModNotesAndFlags.add(Permission.SeeHidden)) ? notificationsDAO.getProjectApprovalsCount() : 0;
|
||||
long reviewQueueCount = globalPermission.has(Permission.Reviewer) ? notificationsDAO.getReviewQueueCount() : 0;
|
||||
long organizationCount = organizationService.getUserOrganizationCount(hangarUser.getId());
|
||||
hangarUser.setHeaderData(new HeaderData(
|
||||
globalPermission,
|
||||
unreadNotifs,
|
||||
unansweredInvites,
|
||||
unresolvedFlags,
|
||||
projectApprovals,
|
||||
reviewQueueCount
|
||||
));
|
||||
reviewQueueCount,
|
||||
organizationCount));
|
||||
return hangarUser;
|
||||
}
|
||||
}
|
||||
|
@ -74,6 +74,10 @@ public class OrganizationService extends HangarComponent {
|
||||
return organizationRolesDAO.getUserOrganizationRoles(user, getHangarUserId());
|
||||
}
|
||||
|
||||
public long getUserOrganizationCount(long userId) {
|
||||
return organizationDAO.getOrganizationCount(userId);
|
||||
}
|
||||
|
||||
public void editMembers(String name, EditMembersForm<OrganizationRole> editMembersForm) {
|
||||
OrganizationTable organizationTable = getOrganizationTable(name);
|
||||
List<HangarApiException> errors = new ArrayList<>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user