mirror of
https://github.com/fluencelabs/rbac
synced 2025-04-24 18:52:15 +00:00
checks in provider
This commit is contained in:
parent
213288ddbd
commit
e7800266fa
@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use fluence::fce;
|
use fluence::{fce, CallParameters};
|
||||||
use fluence::WasmLoggerBuilder;
|
use fluence::WasmLoggerBuilder;
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
@ -43,9 +43,12 @@ pub fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[fce]
|
||||||
pub fn get_status(peer_id: String) -> Status {
|
pub fn get_status() -> Status {
|
||||||
let data = global_data().lock();
|
let data = global_data().lock();
|
||||||
|
|
||||||
|
let call_parameters: CallParameters = fluence::get_call_parameters();
|
||||||
|
let peer_id = call_parameters.init_peer_id;
|
||||||
|
|
||||||
match data.get(peer_id.as_str()) {
|
match data.get(peer_id.as_str()) {
|
||||||
None => {
|
None => {
|
||||||
Status {
|
Status {
|
||||||
@ -60,12 +63,24 @@ pub fn get_status(peer_id: String) -> Status {
|
|||||||
pub fn register(peer_id: String) {
|
pub fn register(peer_id: String) {
|
||||||
let mut data = global_data().lock();
|
let mut data = global_data().lock();
|
||||||
|
|
||||||
data.insert(peer_id, Status {is_registered: true});
|
let call_parameters: CallParameters = fluence::get_call_parameters();
|
||||||
|
let init_peer_id = call_parameters.init_peer_id;
|
||||||
|
let owner = call_parameters.service_creator_peer_id;
|
||||||
|
|
||||||
|
if (init_peer_id == owner || data.contains_key(&init_peer_id)) {
|
||||||
|
data.insert(peer_id, Status {is_registered: true});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fce]
|
#[fce]
|
||||||
pub fn remove(peer_id: String) {
|
pub fn remove(peer_id: String) {
|
||||||
let mut data = global_data().lock();
|
let mut data = global_data().lock();
|
||||||
|
|
||||||
data.remove(peer_id.as_str());
|
let call_parameters: CallParameters = fluence::get_call_parameters();
|
||||||
|
let init_peer_id = call_parameters.init_peer_id;
|
||||||
|
let owner = call_parameters.service_creator_peer_id;
|
||||||
|
|
||||||
|
if (init_peer_id == owner || data.contains_key(&init_peer_id)) {
|
||||||
|
data.remove(peer_id.as_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ pub fn is_authorized(auth: bool) -> bool {
|
|||||||
|
|
||||||
return st.peer_pk == t.peer_pk && st.function_name == t.fn_name
|
return st.peer_pk == t.peer_pk && st.function_name == t.fn_name
|
||||||
&& st.service_id == t.service_id &&
|
&& st.service_id == t.service_id &&
|
||||||
st.json_path == t.json_path;
|
st.json_path == t.json_path && auth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user