mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: limit ViewRecord
This commit is contained in:
1 parent
63894f9959
commit
77fc46c069
17 files changed
+37
-30
No files matched your search
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user