显示包…
1 个稳定版本
2.0.0 | 2021年4月4日 |
---|
#69 在 #tetcoin
89 每月下载次数
在 10 个 包中使用 (2 个直接使用)
1MB
24K SLoC
sudo 模块
概述
Sudo 模块允许单个账户(称为“sudo 密钥”)执行需要 Root
调用的可调派函数或指定新账户以替换它们作为 sudo 密钥。一次只能有一个账户可以作为 sudo 密钥。
接口
可调派函数
只有 sudo 密钥可以调用 Sudo 模块中的可调派函数。
sudo
- 对可调派函数执行Root
调用。set_key
- 分配新账户作为 sudo 密钥。
用法
执行特权函数
Sudo 模块本身不打算在其他模块中使用。相反,您可以在其他模块中构建“特权函数”(即需要 Root
原始的函数)。您可以通过使用 sudo 密钥账户调用 sudo
来执行这些特权函数。特权函数不能直接通过外联执行。
有关特权函数和 Root
原始的更多信息,请参阅 Origin
类型文档。
简单代码片段
这是一个公开特权函数的模块的示例
use fabric_support::{decl_module, dispatch};
use fabric_system::ensure_root;
pub trait Config: fabric_system::Config {}
decl_module! {
pub struct Module<T: Config> for enum Call where origin: T::Origin {
#[weight = 0]
pub fn privileged_function(origin) -> dispatch::DispatchResult {
ensure_root(origin)?;
// do something...
Ok(())
}
}
}
创世配置
Sudo 模块依赖于 GenesisConfig
。您需要将初始超级用户账户设置为 sudo key
。
相关模块
许可证:Apache-2.0
依赖项
~3–12MB
~134K SLoC