core: limit ViewRecord

This commit is contained in:
undefined committed 2021-08-07 02:47:21 +08:00
1 parent 63894f9959
commit 77fc46c069
17 files changed
+37 -30

No files matched your search

+6 -4
View File
@@ -34,16 +34,18 @@ const buildChecker = (...permPrivChecker: Array<number | bigint | Function>) =>
};
export const Nav = (
name: string, args: Dictionary<any> = {}, prefix: string,
name: string, args: ((handler: any) => Record<string, any>) | Record<string, any> = {}, prefix: string,
...permPrivChecker: Array<number | bigint | Function>
) => {
if (typeof args !== 'function') args = () => (args || {});
const checker = buildChecker(...permPrivChecker);
if (name.startsWith('@@')) {
global.Hydro.ui.nodes.nav.splice(+name.split('@@')[1], 0, {
name: name.split('@@')[2], args: args || {}, prefix, checker: buildChecker(...permPrivChecker),
name: name.split('@@')[2], args, prefix, checker,
});
} else {
global.Hydro.ui.nodes.nav.push({
name, args: args || {}, prefix, checker: buildChecker(...permPrivChecker),
name, args, prefix, checker,
});
}
};
@@ -70,7 +72,7 @@ Nav('training_main', {}, 'training', PERM.PERM_VIEW_TRAINING);
Nav('homework_main', {}, 'homework', PERM.PERM_VIEW_HOMEWORK);
Nav('discussion_main', {}, 'discussion', PERM.PERM_VIEW_DISCUSSION);
Nav('contest_main', {}, 'contest', PERM.PERM_VIEW_CONTEST);
Nav('record_main', {}, 'record');
Nav('record_main', (handler) => (handler.user.hasPriv(PRIV.PRIV_USER_PROFILE) ? { query: { uidOrName: handler.user._id } } : {}), 'record');
Nav('ranking', {}, 'ranking', PERM.PERM_VIEW_RANKING);
Nav('domain_dashboard', {}, 'domain', PERM.PERM_EDIT_DOMAIN);
Nav('manage_dashboard', {}, 'manage', PRIV.PRIV_EDIT_SYSTEM);