From 482f07d89e0464ce8840cdd250959090e064c537 Mon Sep 17 00:00:00 2001 From: SteMak Date: Mon, 27 Mar 2023 04:00:29 +0200 Subject: [PATCH] fulfill todo as pull/12 is merged --- near-plugins-derive/src/access_controllable.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/near-plugins-derive/src/access_controllable.rs b/near-plugins-derive/src/access_controllable.rs index e6d5ed5..9e6aa65 100644 --- a/near-plugins-derive/src/access_controllable.rs +++ b/near-plugins-derive/src/access_controllable.rs @@ -135,15 +135,11 @@ pub fn access_controllable(attrs: TokenStream, item: TokenStream) -> TokenStream } fn init_super_admin(&mut self, account_id: &::near_sdk::AccountId) -> bool { - let flag = <#bitflags_type>::from_bits(<#role_type>::acl_super_admin_permission()) + let permission = <#bitflags_type>::from_bits(<#role_type>::acl_super_admin_permission()) .unwrap_or_else(|| ::near_sdk::env::panic_str(#ERR_PARSE_BITFLAG)); - // TODO use self.get_bearers() once the following PR is merged - // https://github.com/aurora-is-near/near-plugins/pull/12 - let number_super_admins = match self.bearers.get(&flag) { - None => 0, - Some(bearers) => bearers.len(), - }; - if number_super_admins > 0 { + // Taking 1 at offset 0 is enough to check if there are no super admins assigned. + let super_admins = self.get_bearers(permission, 0, 1); + if super_admins.len() > 0 { return false; } let res = self.add_super_admin_unchecked(account_id);