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);