@@ -131,15 +131,17 @@ static ec_error_t oxomsg_rectify_message(message_object *pmessage,
131131}
132132
133133/* *
134+ * Inspects a message that a delegate (secretary) wants to submit.
135+ *
134136 * Returns:
135- * - %true and @username is empty: no delegation was requested
136- * - %true and @username is set: delegation with given identity;
137+ * - %true and @username is empty: no delegation
138+ * - %true and @username is set: delegator ("boss") extracted and
137139 * identity guaranteed to exist; caller still needs to perform a
138140 * permission check.
139141 * - %false: unable to contact server,
140- * or requested identity not present in the system
142+ * or requested identity (boss) not present in the system
141143 */
142- static bool oxomsg_extract_delegate (message_object *pmessage,
144+ static bool oxomsg_extract_delegator (message_object *pmessage,
143145 std::string &username)
144146{
145147 static constexpr proptag_t proptag_buff[] =
@@ -312,25 +314,25 @@ ec_error_t rop_submitmessage(uint8_t submit_flags, LOGMAP *plogmap,
312314 static_cast <unsigned long long >(pmessage->get_id ()));
313315 return ecAccessDenied;
314316 }
315- std::string username ;
316- if (!oxomsg_extract_delegate (pmessage, username ))
317+ std::string delegator ;
318+ if (!oxomsg_extract_delegator (pmessage, delegator ))
317319 return ecError;
318- auto account = plogon->get_account ();
320+ auto actor = plogon->get_account ();
319321 repr_grant repr_grant;
320- if (username .empty ()) {
322+ if (delegator .empty ()) {
321323 /* "No impersonation requested" is modeled as {impersonate yourself}. */
322- username = account ;
324+ delegator = actor ;
323325 repr_grant = repr_grant::send_as;
324326 } else {
325- repr_grant = oxomsg_get_perm (account, username .c_str ());
327+ repr_grant = oxomsg_get_perm (actor, delegator .c_str ());
326328 }
327329 if (repr_grant < repr_grant::send_on_behalf) {
328- auto ret = pass_scheduling (" E-2081" , account, username .c_str (), *pmessage,
330+ auto ret = pass_scheduling (" E-2081" , actor, delegator .c_str (), *pmessage,
329331 tmp_propvals.get <const char >(PR_MESSAGE_CLASS));
330332 if (ret != ecSuccess)
331333 return ret;
332334 }
333- auto ret = oxomsg_rectify_message (pmessage, username .c_str (),
335+ auto ret = oxomsg_rectify_message (pmessage, delegator .c_str (),
334336 repr_grant >= repr_grant::send_as);
335337 if (ret != ecSuccess)
336338 return ret;
@@ -618,27 +620,27 @@ ec_error_t rop_transportsend(TPROPVAL_ARRAY **pppropvals, LOGMAP *plogmap,
618620 static_cast <unsigned long long >(pmessage->get_id ()));
619621 return ecAccessDenied;
620622 }
621- std::string username ;
622- if (!oxomsg_extract_delegate (pmessage, username ))
623+ std::string delegator ;
624+ if (!oxomsg_extract_delegator (pmessage, delegator ))
623625 return ecError;
624- auto account = plogon->get_account ();
626+ auto actor = plogon->get_account ();
625627 repr_grant repr_grant;
626- if (username .empty ()) {
627- username = account ;
628+ if (delegator .empty ()) {
629+ delegator = actor ;
628630 repr_grant = repr_grant::send_as;
629631 } else {
630- repr_grant = oxomsg_get_perm (account, username .c_str ());
632+ repr_grant = oxomsg_get_perm (actor, delegator .c_str ());
631633 }
632634 if (repr_grant < repr_grant::send_on_behalf) {
633635 TPROPVAL_ARRAY cls_vals{};
634636 if (pmessage->get_properties (0 , &cls_tags, &cls_vals) != 0 )
635637 /* ignore, since we can test for cls_vals fill */ ;
636- auto ret = pass_scheduling (" E-2080" , account, username .c_str (), *pmessage,
638+ auto ret = pass_scheduling (" E-2080" , actor, delegator .c_str (), *pmessage,
637639 cls_vals.get <const char >(PR_MESSAGE_CLASS));
638640 if (ret != ecSuccess)
639641 return ret;
640642 }
641- auto ret = oxomsg_rectify_message (pmessage, username .c_str (),
643+ auto ret = oxomsg_rectify_message (pmessage, delegator .c_str (),
642644 repr_grant >= repr_grant::send_as);
643645 if (ret != ecSuccess)
644646 return ret;
0 commit comments