MAINT-3351 FIXED Misleading failure message when user is successfully removed from a group's Owners role

maksymsproductengine 2014-05-29 03:24:13 +03:00
parent e10d5238d6
commit efc9422d1b
3 changed files with 25 additions and 0 deletions

View File

@ -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,

View File

@ -254,6 +254,8 @@ public:
bool isRoleMemberDataComplete() { return mRoleMemberDataComplete; }
bool isGroupPropertiesDataComplete() { return mGroupPropertiesDataComplete; }
bool isSingleMemberNotOwner();
F32 getAccessTime() const { return mAccessTime; }
void setAccessed();

View File

@ -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;
}