Browse Source

Add member_id to the bureaucracy lead

- add member_id to the bureaucracy lead
- remove role registration
Shamil Gadelshin 4 years ago
parent
commit
5a1888cee8
2 changed files with 8 additions and 12 deletions
  1. 4 11
      runtime-modules/bureaucracy/src/lib.rs
  2. 4 1
      runtime-modules/bureaucracy/src/types.rs

+ 4 - 11
runtime-modules/bureaucracy/src/lib.rs

@@ -8,7 +8,6 @@ use srml_support::traits::Currency;
 use srml_support::{decl_module, decl_storage, dispatch, ensure};
 use system::ensure_root;
 
-use membership::role_types::{ActorInRole, Role};
 use types::{Lead, LeadRoleState};
 
 //TODO: convert messages to the decl_error! entries
@@ -39,7 +38,7 @@ decl_storage! {
         pub CurrentLeadId get(current_lead_id) : Option<LeadId<T>>;
 
         /// Maps identifier to corresponding lead.
-        pub LeadById get(lead_by_id): linked_map LeadId<T> => Lead<T::AccountId, T::RewardRelationshipId, T::BlockNumber>;
+        pub LeadById get(lead_by_id): linked_map LeadId<T> => Lead<T::MemberId, T::AccountId, T::RewardRelationshipId, T::BlockNumber>;
 
         /// Next identifier for new current lead.
         pub NextLeadId get(next_lead_id): LeadId<T>;
@@ -60,23 +59,17 @@ decl_module! {
 
         let new_lead_id = <NextLeadId<T, I>>::get();
 
-        let new_lead_role = ActorInRole::new(Role::CuratorLead, new_lead_id);
-
-        //
-        // == MUTATION SAFE ==
-        //
-
-        // Register in role - will fail if member cannot become lead
-        membership::members::Module::<T>::register_role_on_member(member, &new_lead_role)?;
-
         // Construct lead
         let new_lead = Lead {
+            member_id: member,
             role_account,
             reward_relationship: None,
             inducted: <system::Module<T>>::block_number(),
             stage: LeadRoleState::Active,
         };
 
+        // mutation
+
         // Store lead
         <LeadById<T, I>>::insert(new_lead_id, new_lead);
 

+ 4 - 1
runtime-modules/bureaucracy/src/types.rs

@@ -34,7 +34,10 @@ impl<BlockNumber> Default for LeadRoleState<BlockNumber> {
 /// hence information about this is missing. Recurring rewards is included, somewhat arbitrarily!
 #[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
 #[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
-pub struct Lead<AccountId, RewardRelationshipId, BlockNumber> {
+pub struct Lead<MemberId, AccountId, RewardRelationshipId, BlockNumber> {
+    /// Member id of the leader
+    pub member_id: MemberId,
+
     /// Account used to authenticate in this role,
     pub role_account: AccountId,