Well, that was open source and its old version but still free for use I think but your plugin is a better solution as you have full control over and its lightweight so I would recommend you stick with plugin approach.
I have had a look your plugin code, please see my feedback/suggestions below
You only want to display the Authorised Contact view if the user is not sys admin, so you may want to change the condition as shown below
string roleName = "System Administrator";
bool userRoleFound = VerifyIfUserHasRole(roleName, context.UserId, crmService);
if (!userRoleFound)
{
ConditionExpression queryCondition = new ConditionExpression("name", ConditionOperator.Equal, "Authorized Contact");
qe.Criteria.Conditions.Add(queryCondition);
}
And you could also the VerifyIfUserHasRole to the following, just to get rid of FETCH XML
public bool VerifyIfUserHasRole(string roleName, Guid userId, IOrganizationService crmService)
{
var QEsystemuser = new QueryExpression("systemuser");
QEsystemuser.Distinct = true;
QEsystemuser.ColumnSet.AddColumns("fullname", "systemuserid");
var QEsystemuser_systemuserroles = QEsystemuser.AddLink("systemuserroles", "systemuserid", "systemuserid");
var QEsystemuser_systemuserroles_role = QEsystemuser_systemuserroles.AddLink("role", "roleid", "roleid");
QEsystemuser_systemuserroles_role.EntityAlias = "aa";
QEsystemuser_systemuserroles_role.LinkCriteria.AddCondition("name", ConditionOperator.Equal, roleName);
return crmService.RetrieveMultiple(QEsystemuser).Entities.Count > 0;
}