首页 > 其他分享 >HydroOJ 从入门到入土(3)权限管理

HydroOJ 从入门到入土(3)权限管理

时间:2023-12-06 20:56:03浏览次数:31  
标签:入门 PRIV VIEW PERM 入土 HydroOJ PROBLEM 权限 1n

管理OJ 就是管理资源, 管理资源就是管理权限.

HydroOJ 的用户权限使用位运算, 所以看起来比较奇怪.

权限管理分两块: 系统权限和域权限, 这两个是分开的.

1. 系统权限 (控制面板->用户权限)

  1. 装完系统设置好超级管理员之后, 该用户自动 root 权限(所有权限).
  2. guest 是未注册用户的权限, 一般只有一个注册的权限, 如果关闭, 则关闭注册功能.
  3. Default Privilege 是注册用户权限, 建议关闭 文件权限 , 发送站内信创建域 的权限.
  4. 可以挑选用户, 指定各类权限.

具体权限可以参考源代码第 236-263 行.

解释不一定准确, 仅供参考, 全部整理如下:

权限(英文) 解释
PRIV_NONE 0 没有任何权限, 包括注册, 等价于拉黑
PRIV_MOD_BADGE 1 << 25 修改徽章的权限, 但是修改徽章最好装个插件
PRIV_EDIT_SYSTEM 1 << 0 编辑系统, 应该是使用控制面板的权限
PRIV_SET_PERM 1 << 1 设置权限, 看源代码这个 PERM 应该是域权限
PRIV_USER_PROFILE 1 << 2 查看个人档案, 也是访问大多数页面的必要权限
PRIV_REGISTER_USER 1 << 3 注册, 关闭之后相当于关闭注册功能
PRIV_READ_PROBLEM_DATA 1 << 4 读取题目数据
PRIV_READ_RECORD_CODE 1 << 7 读取记录代码
PRIV_VIEW_HIDDEN_RECORD 1 << 8 查看隐藏记录
PRIV_JUDGE 1 << 9 评测, 远程评测机可以用开了此权限的账号登录
PRIV_CREATE_DOMAIN 1 << 10 创建域
PRIV_VIEW_ALL_DOMAIN 1 << 11 查看所有域
PRIV_MANAGE_ALL_DOMAIN 1 << 12 管理所有域
PRIV_REJUDGE 1 << 13 重新评测
PRIV_VIEW_USER_SECRET 1 << 14 查看用户 secret (?)
PRIV_VIEW_JUDGE_STATISTICS 1 << 15 查看评测统计信息
PRIV_UNLIMITED_ACCESS 1 << 22 无限制访问, 可以查看隐藏题目, 各种作业等等
PRIV_VIEW_SYSTEM_NOTIFICATION 1 << 23 查看系统通知
PRIV_SEND_MESSAGE 1 << 24 发送站内消息
PRIV_CREATE_FILE 1 << 16 创建文件, 目前没有上传限制, 建议关闭
PRIV_UNLIMITED_QUOTA 1 << 17 无限配额 (?)
PRIV_DELETE_FILE 1 << 18 删除文件
PRIV_ALL -1 所有权限

2. 域权限 (管理域->管理权限)

  1. 默认域是 system 域, 超级管理员自动 root 权限(所有权限).
  2. guest 是未注册用户的权限, 如果不希望未注册用户查看, 可以关闭 查看此域 的权限.
  3. default 是注册用户权限, 一般不用动, 按需修改, 如果管理员较少, 建议关闭写题解功能.
  4. 如需自定义组别, 可以先在 管理角色 中新建一个用户组, 如 管理员 , 然后在 管理用户 当中选定部分用户加入 管理员 用户组, 之后可以再管理权限中指定 管理员 的各类权限.

具体权限可以参考源代码第 10-100 行.

解释不一定准确, 仅供参考, 全部整理如下:

权限(英文) 解释
PERM_NONE 0n
// Domain Settings
PERM_VIEW 1n << 0n 查看此域
PERM_EDIT_DOMAIN 1n << 1n 编辑域设置
PREM_VIEW_DISPLAYNAME 1n << 67n 显示域中用户的显示名
PERM_MOD_BADGE 1n << 2n 展示 MOD 徽章
// Problem
PERM_CREATE_PROBLEM 1n << 4n 创建题目
PERM_EDIT_PROBLEM 1n << 5n 修改题目
PERM_EDIT_PROBLEM_SELF 1n << 6n 修改自己的题目
PERM_VIEW_PROBLEM 1n << 7n 查看题目
PERM_VIEW_PROBLEM_HIDDEN 1n << 8n 查看隐藏的题目
PERM_SUBMIT_PROBLEM 1n << 9n 递交题目
PERM_READ_PROBLEM_DATA 1n << 10n 读取题目数据
// Record
PERM_READ_RECORD_CODE 1n << 12n 读取记录的代码
PERM_READ_RECORD_CODE_ACCEPT 1n << 66n 题目通过后读取记录的代码
PERM_REJUDGE_PROBLEM 1n << 13n 重测题目
PERM_REJUDGE 1n << 14n 重测记录
// Problem Solution
PERM_VIEW_PROBLEM_SOLUTION 1n << 15n 查看题解
PERM_VIEW_PROBLEM_SOLUTION_ACCEPT 1n << 65n 题目通过后查看题解
PERM_CREATE_PROBLEM_SOLUTION 1n << 16n 创建题解
PERM_VOTE_PROBLEM_SOLUTION 1n << 17n 为题解投票
PERM_EDIT_PROBLEM_SOLUTION 1n << 18n 修改题解
PERM_EDIT_PROBLEM_SOLUTION_SELF 1n << 19n 修改自己的题解
PERM_DELETE_PROBLEM_SOLUTION 1n << 20n 删除题解
PERM_DELETE_PROBLEM_SOLUTION_SELF 1n << 21n 删除自己的题解
PERM_REPLY_PROBLEM_SOLUTION 1n << 22n 回复题解
PERM_EDIT_PROBLEM_SOLUTION_REPLY_SELF 1n << 24n 修改题解中自己的回复
PERM_DELETE_PROBLEM_SOLUTION_REPLY 1n << 25n 删除题解的回复
PERM_DELETE_PROBLEM_SOLUTION_REPLY_SELF 1n << 26n 删除题解中自己的回复
// Discussion
PERM_VIEW_DISCUSSION 1n << 27n 查看讨论
PERM_CREATE_DISCUSSION 1n << 28n 创建讨论
PERM_HIGHLIGHT_DISCUSSION 1n << 29n 高亮讨论
PERM_PIN_DISCUSSION 1n << 61n 置顶讨论
PERM_EDIT_DISCUSSION 1n << 30n 修改讨论
PERM_EDIT_DISCUSSION_SELF 1n << 31n 修改自己的讨论
PERM_DELETE_DISCUSSION 1n << 32n 删除讨论
PERM_DELETE_DISCUSSION_SELF 1n << 33n 删除自己的讨论
PERM_REPLY_DISCUSSION 1n << 34n 回复讨论
PERM_ADD_REACTION 1n << 62n React to discussion
PERM_EDIT_DISCUSSION_REPLY_SELF 1n << 36n 修改讨论中自己的回复
PERM_DELETE_DISCUSSION_REPLY 1n << 38n 删除讨论回复
PERM_DELETE_DISCUSSION_REPLY_SELF 1n << 39n 删除讨论中自己的回复
PERM_DELETE_DISCUSSION_
REPLY_SELF_DISCUSSION
1n << 40n 删除自己讨论中的回复
PERM_LOCK_DISCUSSION 1n << 64n 锁定讨论
// Contest
PERM_VIEW_CONTEST 1n << 41n 查看比赛
PERM_VIEW_CONTEST_SCOREBOARD 1n << 42n 查看比赛成绩表
PERM_VIEW_CONTEST_HIDDEN_SCOREBOARD 1n << 43n 查看隐藏的比赛
递交状态和成绩表
PERM_CREATE_CONTEST 1n << 44n 创建比赛
PERM_ATTEND_CONTEST 1n << 45n 参加比赛
PERM_EDIT_CONTEST 1n << 50n 修改任意的比赛
PERM_EDIT_CONTEST_SELF 1n << 51n 修改自己的比赛
PERM_VIEW_HIDDEN_CONTEST 1n << 68n 查看所有比赛
// Homework
PERM_VIEW_HOMEWORK 1n << 52n 查看作业
PERM_VIEW_HOMEWORK_SCOREBOARD 1n << 53n 查看作业成绩表
PERM_VIEW_HOMEWORK_
HIDDEN_SCOREBOARD
1n << 54n 查看隐藏的作业
递交状态和成绩表
PERM_CREATE_HOMEWORK 1n << 55n 创建作业
PERM_ATTEND_HOMEWORK 1n << 56n 认领作业
PERM_EDIT_HOMEWORK 1n << 57n 修改任意的作业
PERM_EDIT_HOMEWORK_SELF 1n << 58n 修改自己的作业
PERM_VIEW_HIDDEN_HOMEWORK 1n << 69n 查看所有作业
// Training
PERM_VIEW_TRAINING 1n << 46n 查看训练计划
PERM_CREATE_TRAINING 1n << 47n 创建训练计划
PERM_EDIT_TRAINING 1n << 48n 修改训练计划
PERM_PIN_TRAINING 1n << 63n 置顶训练计划
PERM_EDIT_TRAINING_SELF 1n << 49n 修改自己的训练计划
// Ranking
PERM_VIEW_RANKING 1n << 59n 查看排名
// Placeholder
PERM_ALL -1n
PERM_BASIC 0n
PERM_DEFAULT 0n
PERM_ADMIN -1n
PERM_NEVER 1n << 60n

总结

优先处理控制面板中的权限, 这个权限对所有域生效.

处理域权限的时候, 可以新建几个用户组, 细化管理

标签:入门,PRIV,VIEW,PERM,入土,HydroOJ,PROBLEM,权限,1n
From: https://www.cnblogs.com/bowen404/p/17880516.html

相关文章

  • 【python入门之异常处理】---python 异常处理
    title:【python入门之异常处理】---python异常处理date:2023-12-0619:14:26updated:2023-12-0619:40:00description:【python入门之异常处理】---python异常处理cover:https://home.cnblogs.com/u/dream-ze/【一】什么是异常异常是程序运行时可能发......
  • python入门之深浅拷贝】---python 深浅拷贝
    title:【python入门之深浅拷贝】---python深浅拷贝date:2023-12-0618:54:06updated:2023-12-0619:20:00description:【python入门之深浅拷贝】---python深浅拷贝cover:https://zhuanlan.zhihu.com/p/631965597https://home.cnblogs.com/u/dream-ze/【......
  • 5 分钟,带你入门 FreeMarker 模板引擎!
    大家好,我是鱼皮。最近不是打算带大家做一个代码生成项目嘛,项目的第一阶段就是先做一个本地的代码生成器。代码生成器的核心功能就是根据用户输入的选项参数来生成不同的代码文件。代码生成器的核心原理那么如何实现这个功能呢?最经典的方法就是:提前编写模板文件,并将用户输入的参......
  • Spring入门
    Spring框架介绍Spring是一个轻量级Java开发框架,最早有RodJohnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEEfull-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发......
  • kettle从入门到精通 第二十三课 kettle carte 错误(java.lang.OutOfMemoryError: GC ov
     1、Couldnotemitbufferduetolackofrequests(无法发出缓冲区,因为请求不足。)原因有两点:1)消费者处理数据能力较弱,如表输出步骤。2)消费者没有处理数据,如传递的数据中有字段type=1的数据,这种情况没有处理。解放方案:针对1)采用多线程处理和开启批量提交,如下图所示批量插入......
  • 【Java 进阶篇】Java Session 原理及快速入门
    大家好,欢迎来到本篇博客。今天,我们将探讨JavaWeb开发中一个重要而令人兴奋的概念,即Session(会话)。Session是一种在Web应用程序中跟踪用户状态和数据的机制。我们将深入了解Session的原理,并通过示例来快速入门。什么是Session?在Web开发中,Session是一种服务器端的机制,用于跟踪用户与W......
  • 神经网络入门篇:深度学习和大脑的关联性(What does this have to do with the brain?)
    深度学习和大脑的关联性开始讲故事(手动狗头)深度学习和大脑有什么关联性吗?关联不大。那么为什么会说深度学习和大脑相关呢?当你在实现一个神经网络的时候,那些公式是你在做的东西,你会做前向传播、反向传播、梯度下降法,其实很难表述这些公式具体做了什么,深度学习像大脑这样的类......
  • kafka入门(三):kafka多线程消费
    kafka消费积压如果生产者发送消息的速度过快,或者是消费者处理消息的速度太慢,那么就会有越来越多的消息无法及时消费,也就是消费积压。消费积压时,可以使用多线程消费,提高消费速度。kafka多线程消费的代码:publicclassThirdMultiConsumerThreadDemo{publicstaticfinalS......
  • Unreal入门,门06,道具随机生成与解锁
    1.在关卡蓝图中随机生成道具,并删除之前在关卡中手动放置的道具2.打开道具类型蓝图可编辑开关,随机生成不同道具3.在GameMode中增加函数判断道具是否集齐,并在TheDoor蓝图中解锁4.实时打印进度其它引擎版本为5.3.2参考https://neil3d.github.io/assets/p......
  • HydroOJ 踩坑指南(2)服务器选择和部署
    Hydro官方的高级域其实不错,还支持自定义logo和域名,功能也全,但是用了自定义域名,很多的题包括洛谷的就没法用了,而且很多项没法自定义,偶尔会响应时间过长,题目数据不在本地等等,最后发现,还不如自己配置个服务器,这样更有折腾的成就感.服务器的选择可以用阿......