MAINT-3351 FIXED Misleading failure message when user is successfully removed from a group's Owners role
parent
e10d5238d6
commit
efc9422d1b
|
|
@ -611,6 +611,11 @@ void LLGroupMgrGroupData::recalcAgentPowers(const LLUUID& agent_id)
|
|||
}
|
||||
}
|
||||
|
||||
bool LLGroupMgrGroupData::isSingleMemberNotOwner()
|
||||
{
|
||||
return mMembers.size() == 1 && !mMembers.begin()->second->isOwner();
|
||||
}
|
||||
|
||||
bool packRoleUpdateMessageBlock(LLMessageSystem* msg,
|
||||
const LLUUID& group_id,
|
||||
const LLUUID& role_id,
|
||||
|
|
|
|||
|
|
@ -254,6 +254,8 @@ public:
|
|||
bool isRoleMemberDataComplete() { return mRoleMemberDataComplete; }
|
||||
bool isGroupPropertiesDataComplete() { return mGroupPropertiesDataComplete; }
|
||||
|
||||
bool isSingleMemberNotOwner();
|
||||
|
||||
F32 getAccessTime() const { return mAccessTime; }
|
||||
void setAccessed();
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@
|
|||
|
||||
#include "llpanelgroupnotices.h"
|
||||
#include "llpanelgroupgeneral.h"
|
||||
#include "llpanelgrouproles.h"
|
||||
|
||||
#include "llaccordionctrltab.h"
|
||||
#include "llaccordionctrl.h"
|
||||
|
|
@ -275,6 +276,7 @@ void LLPanelGroup::onBtnApply(void* user_data)
|
|||
{
|
||||
LLPanelGroup* self = static_cast<LLPanelGroup*>(user_data);
|
||||
self->apply();
|
||||
self->refreshData();
|
||||
}
|
||||
|
||||
void LLPanelGroup::onBtnGroupCallClicked(void* user_data)
|
||||
|
|
@ -497,6 +499,22 @@ bool LLPanelGroup::apply(LLPanelGroupTab* tab)
|
|||
{
|
||||
//we skip refreshing group after ew manually apply changes since its very annoying
|
||||
//for those who are editing group
|
||||
|
||||
LLPanelGroupRoles * roles_tab = dynamic_cast<LLPanelGroupRoles*>(tab);
|
||||
if (roles_tab)
|
||||
{
|
||||
LLGroupMgr* gmgrp = LLGroupMgr::getInstance();
|
||||
LLGroupMgrGroupData* gdatap = gmgrp->getGroupData(roles_tab->getGroupID());
|
||||
|
||||
// allow refresh only for one specific case:
|
||||
// there is only one member in group and it is not owner
|
||||
// it's a wrong situation and need refresh panels from server
|
||||
if (gdatap && gdatap->isSingleMemberNotOwner())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
mSkipRefresh = TRUE;
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue