public void CheckPermissions(User user)
        {
            var requiredPermissions = new PermissionBuilder();

            BindPermissions(requiredPermissions);
            foreach (RequiredPermission required in requiredPermissions.Permissions)
            {
                if (required is BasicRequiredPermission)
                {
                    var basic = required as BasicRequiredPermission;
                    user.CheckPermission(basic.Category, basic.Mask, "You do not have permission to perform this action.");
                }
                else if (required is BiotaRequiredPermission)
                {
                    var taxonperm = required as BiotaRequiredPermission;
                    if (!user.HasBiotaPermission(taxonperm.TaxonID, taxonperm.Mask))
                    {
                        throw new NoPermissionException("You do not have permission to perform this action.");
                    }
                }
            }
        }
 protected override void BindPermissions(PermissionBuilder required)
 {
     required.None();
 }
 protected abstract void BindPermissions(PermissionBuilder required);