void QtSettingsProvider::storeSetting(const Setting<int>& setting, const int& settingValue) { bool changed = false; if (getSetting(setting) != settingValue) { changed = true; } settings_.setValue(setting.getKey().c_str(), settingValue); if (changed) { onSettingChanged(setting.getKey()); } updatePermissions(); }
void QtSettingsProvider::removeProfile(const std::string& profile) { QString profileStart(QString(profile.c_str()) + ":"); for (auto&& key : settings_.allKeys()) { if (key.startsWith(profileStart)) { settings_.remove(key); } } QStringList stringList = settings_.value("profileList").toStringList(); stringList.removeAll(profile.c_str()); settings_.setValue("profileList", stringList); updatePermissions(); }
bool DB::addOrUpdateUser(User & user, const QString & password) { TRANSACTION(ta); QSqlQuery query(ta.db); UserId userId = DB::getUserId(user.getLogin()); if (!userId.isValid()) { if (!addUser(user, password)) return false; userId = DB::getUserId(user.getLogin()); user.setId(userId); } else { if (!updateUser(user, password)) return false; } if (!userId.isValid()) { qInfo() << "Some error occured during changing the user with the login:" << user.getLogin(); return false; } if (!updatePermissions(userId, user.getPermissions())) return false; return ta.commit(); }
// Check whether an Install is allowed. The launching URI can be null, // in which case only the global pref-setting matters. PRBool nsInstallTrigger::AllowInstall(nsIURI* aLaunchURI) { // Check the global setting. PRBool xpiEnabled = PR_FALSE; nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID)); if ( !prefBranch) { return PR_TRUE; // no pref service in native install, it's OK } prefBranch->GetBoolPref( XPINSTALL_ENABLE_PREF, &xpiEnabled); if ( !xpiEnabled ) { // globally turned off return PR_FALSE; } // Check permissions for the launching host if we have one nsCOMPtr<nsIPermissionManager> permissionMgr = do_GetService(NS_PERMISSIONMANAGER_CONTRACTID); if ( permissionMgr && aLaunchURI ) { PRBool isChrome = PR_FALSE; PRBool isFile = PR_FALSE; aLaunchURI->SchemeIs( "chrome", &isChrome ); aLaunchURI->SchemeIs( "file", &isFile ); // file: and chrome: don't need whitelisted hosts if ( !isChrome && !isFile ) { // check prefs for permission updates before testing URI updatePermissions( XPINSTALL_WHITELIST_ADD, nsIPermissionManager::ALLOW_ACTION, permissionMgr, prefBranch ); updatePermissions( XPINSTALL_WHITELIST_ADD_36, nsIPermissionManager::ALLOW_ACTION, permissionMgr, prefBranch ); updatePermissions( XPINSTALL_BLACKLIST_ADD, nsIPermissionManager::DENY_ACTION, permissionMgr, prefBranch ); PRBool requireWhitelist = PR_TRUE; prefBranch->GetBoolPref( XPINSTALL_WHITELIST_REQUIRED, &requireWhitelist ); PRUint32 permission = nsIPermissionManager::UNKNOWN_ACTION; permissionMgr->TestPermission( aLaunchURI, XPI_PERMISSION, &permission ); if ( permission == nsIPermissionManager::DENY_ACTION ) { xpiEnabled = PR_FALSE; } else if ( requireWhitelist && permission != nsIPermissionManager::ALLOW_ACTION ) { xpiEnabled = PR_FALSE; } } } return xpiEnabled; }
void QtSettingsProvider::createProfile(const std::string& profile) { QStringList stringList = settings_.value("profileList").toStringList(); stringList.append(profile.c_str()); settings_.setValue("profileList", stringList); updatePermissions(); }