bool QMailAccount::canCollectMail() const { if ( accountType() == QMailAccount::Synchronized || accountType() == QMailAccount::SMS || accountType() == QMailAccount::MMS || accountType() == QMailAccount::System ) return false; return true; }
bool QMailAccount::hasSettings() const { switch( accountType() ) { case QMailAccount::SMS: return false; default: return true; } }
bool Account::checkSupported() { Settings &settings = Settings::instance(); // Read user id, start/end dates, account type std::string userId, startDate, endDate, accountType("true"), sign; bool supported = settings.getBool("account/supported", false); if(!supported) { warningMessage(_("Account is not supported")); return false; } userId = settings.getString("account/user_id", ""); startDate = settings.getString("account/start_date", ""); endDate = settings.getString("account/end_date", ""); sign = settings.getString("account/sign", ""); std::string baMessage = userId + startDate + endDate + accountType; GByte *key = reinterpret_cast<GByte*>(CPLStrdup(sign.c_str())); int nLength = CPLBase64DecodeInPlace(key); std::string baSignature; baSignature.assign(reinterpret_cast<const char*>(key), static_cast<size_t>(nLength)); memset(key, 0, baSignature.size()); CPLFree(key); bool verify = verifyRSASignature( reinterpret_cast<const unsigned char*>(baMessage.c_str()), static_cast<unsigned int>(baMessage.size()), reinterpret_cast<const unsigned char*>(baSignature.c_str()), static_cast<unsigned int>(baSignature.size())); if(!verify) { return false; } time_t current = time(nullptr); time_t start = timeFromString(startDate.c_str()); time_t end = timeFromString(endDate.c_str()); bool out = current >= start && current <= end; if(!out) { warningMessage(_("Account is supported. Verify success. Period expired.")); } return out; }
bool ReportAccount::isLiquidLiability() const { return accountType() == MyMoneyAccount::CreditCard; }