private bool ExistsInHigherPermissionLevel(GlymaSecurityGroup group, GlymaPermissionLevel currentPermissionLevel)
{
bool result = false;
IList<GlymaSecurityGroup> projectManagerGroups = _groups[GlymaPermissionLevel.GlymaProjectManager];
IList<GlymaSecurityGroup> mapManagersGroups = _groups[GlymaPermissionLevel.GlymaMapManager];
IList<GlymaSecurityGroup> mapAuthorGroups = _groups[GlymaPermissionLevel.GlymaMapAuthor];
IList<GlymaSecurityGroup> oldMapAuthorsGroups = _groups[GlymaPermissionLevel.GlymaMapAuthorOld];
switch (currentPermissionLevel)
{
case GlymaPermissionLevel.GlymaMapManager:
foreach (GlymaSecurityGroup securityGroup in projectManagerGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
break;
case GlymaPermissionLevel.GlymaMapAuthor:
foreach (GlymaSecurityGroup securityGroup in mapManagersGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
foreach (GlymaSecurityGroup securityGroup in projectManagerGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
break;
case GlymaPermissionLevel.GlymaMapReader:
foreach (GlymaSecurityGroup securityGroup in mapAuthorGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
foreach (GlymaSecurityGroup securityGroup in oldMapAuthorsGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
foreach (GlymaSecurityGroup securityGroup in mapManagersGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
foreach (GlymaSecurityGroup securityGroup in projectManagerGroups)
{
if (group.GroupId == securityGroup.GroupId)
{
result = true;
break; //found match, break foreach loop early
}
}
break;
}
return result;
}
}