MAINT-9049 [EAM] Allow adding multiple avatars to the list, ignoring inappropriate one for that list if it was selected
parent
50643cace9
commit
6dbab94684
|
|
@ -3626,6 +3626,7 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
return;
|
||||
}
|
||||
|
||||
uuid_vec_t ids_allowed;
|
||||
std::string already_allowed;
|
||||
bool single = true;
|
||||
for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
|
||||
|
|
@ -3640,6 +3641,10 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
}
|
||||
already_allowed += item->getColumn(0)->getValue().asString();
|
||||
}
|
||||
else
|
||||
{
|
||||
ids_allowed.push_back(*it);
|
||||
}
|
||||
}
|
||||
if (!already_allowed.empty())
|
||||
{
|
||||
|
|
@ -3647,9 +3652,13 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
args["AGENT"] = already_allowed;
|
||||
args["LIST_TYPE"] = LLTrans::getString("RegionInfoListTypeAllowedAgents");
|
||||
LLNotificationsUtil::add(single ? "AgentIsAlreadyInList" : "AgentsAreAlreadyInList", args);
|
||||
delete change_info;
|
||||
return;
|
||||
if (ids_allowed.empty())
|
||||
{
|
||||
delete change_info;
|
||||
return;
|
||||
}
|
||||
}
|
||||
change_info->mAgentOrGroupIDs = ids_allowed;
|
||||
}
|
||||
if (change_info->mOperationFlag & ESTATE_ACCESS_BANNED_AGENT_ADD)
|
||||
{
|
||||
|
|
@ -3668,16 +3677,22 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
return;
|
||||
}
|
||||
|
||||
uuid_vec_t ids_allowed;
|
||||
std::string already_banned;
|
||||
std::string em_ban;
|
||||
bool single = true;
|
||||
for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
|
||||
{
|
||||
bool is_allowed = true;
|
||||
LLScrollListItem* em_item = em_list->getNameItemByAgentId(*it);
|
||||
if (em_item)
|
||||
{
|
||||
em_ban = em_item->getColumn(0)->getValue().asString();
|
||||
break;
|
||||
if (!em_ban.empty())
|
||||
{
|
||||
em_ban += ", ";
|
||||
}
|
||||
em_ban += em_item->getColumn(0)->getValue().asString();
|
||||
is_allowed = false;
|
||||
}
|
||||
|
||||
LLScrollListItem* item = name_list->getNameItemByAgentId(*it);
|
||||
|
|
@ -3689,6 +3704,12 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
single = false;
|
||||
}
|
||||
already_banned += item->getColumn(0)->getValue().asString();
|
||||
is_allowed = false;
|
||||
}
|
||||
|
||||
if (is_allowed)
|
||||
{
|
||||
ids_allowed.push_back(*it);
|
||||
}
|
||||
}
|
||||
if (!em_ban.empty())
|
||||
|
|
@ -3696,8 +3717,11 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
LLSD args;
|
||||
args["AGENT"] = em_ban;
|
||||
LLNotificationsUtil::add("ProblemBanningEstateManager", args);
|
||||
delete change_info;
|
||||
return;
|
||||
if (ids_allowed.empty())
|
||||
{
|
||||
delete change_info;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!already_banned.empty())
|
||||
{
|
||||
|
|
@ -3705,14 +3729,17 @@ void LLPanelEstateAccess::accessAddCore3(const uuid_vec_t& ids, void* data)
|
|||
args["AGENT"] = already_banned;
|
||||
args["LIST_TYPE"] = LLTrans::getString("RegionInfoListTypeBannedAgents");
|
||||
LLNotificationsUtil::add(single ? "AgentIsAlreadyInList" : "AgentsAreAlreadyInList", args);
|
||||
delete change_info;
|
||||
return;
|
||||
if (ids_allowed.empty())
|
||||
{
|
||||
delete change_info;
|
||||
return;
|
||||
}
|
||||
}
|
||||
change_info->mAgentOrGroupIDs = ids_allowed;
|
||||
}
|
||||
|
||||
LLSD args;
|
||||
args["ALL_ESTATES"] = all_estates_text();
|
||||
|
||||
LLNotification::Params params(change_info->mDialogName);
|
||||
params.substitutions(args)
|
||||
.payload(change_info->asLLSD())
|
||||
|
|
|
|||
Loading…
Reference in New Issue