Fix group expiration
As you can see, the function does not return the correct result. The issue lies in the
"getExpirationFromPeriod" function, which is responsible for defining the expiry timestamp. This
function has two issues, the switch statement is missing "break" statements. This means that even if
"case self:ERIOD_MONTHLY" is matched, it will fall through to the next case and return an expiration
date of one year. More importantly, however, is that the switch-statement's input is not
correct. The "getPeriod" function used converts a string billing period ("monthly", "yearly") to a
billing period constant. However, in the input of the switch-statement "$this->billingPeriod" is
passed to "getPeriod", but "$this->billingPeriod" is already the billing period constant. Therefore,
"getPeriod" would return the fallback billing period constant "PERIOD_ONCE", which is not matched in
the switch-statement causing the default DateInterval of one second to be used.