Magnolia 4.5 reached end of life on June 30, 2016. This branch is no longer supported, see End-of-life policy.
Voters are used in Magnolia whenever configuration values are not assigned at startup but instead depend on rules. For example the Cache module has to determine if a requested resource may be cached or not. The rules to determine values should be configurable. The rules are user-defined using voters which evaluate established criteria by determining true or false of each rule. Voters are currently used for:
The basic concept of voters uses Voter classes which calculate an int
vote value, where positive (1, 2, 3, ...) results are treated as "yes" or "true" and (0, -1, -2, ...) results are treated as "no" or "false". If you have a set of voters, then the result of a voting is the largest absolute result. If there are two voters with the same absolute result, then the one with the higher positive value will be taken.
Examples:
Vote results | VoterSet result |
---|---|
-3, 0, 2 | -3 |
-3, 0, 3 | 3 |
-3, 0, 4 | 4 |
For most of the "real world" voters only boolean results make sense. These boolean voters return "1" for a "true" and "0" for a "false" result.
Voter | Parameters | Boolean | Description |
---|---|---|---|
none | Yes | Checks if the current user is authenticated. | |
| Yes |
|
For further information see the voters package.