mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2024-12-22 22:45:12 +01:00
Equivalent domains
This commit is contained in:
parent
1bc346688c
commit
4c9d82d790
2 changed files with 692 additions and 11 deletions
650
src/api/core/global_domains.json
Normal file
650
src/api/core/global_domains.json
Normal file
|
@ -0,0 +1,650 @@
|
|||
[
|
||||
{
|
||||
"Type": 2,
|
||||
"Domains": [
|
||||
"ameritrade.com",
|
||||
"tdameritrade.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 3,
|
||||
"Domains": [
|
||||
"bankofamerica.com",
|
||||
"bofa.com",
|
||||
"mbna.com",
|
||||
"usecfo.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 4,
|
||||
"Domains": [
|
||||
"sprint.com",
|
||||
"sprintpcs.com",
|
||||
"nextel.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 0,
|
||||
"Domains": [
|
||||
"youtube.com",
|
||||
"google.com",
|
||||
"gmail.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 1,
|
||||
"Domains": [
|
||||
"apple.com",
|
||||
"icloud.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 5,
|
||||
"Domains": [
|
||||
"wellsfargo.com",
|
||||
"wf.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 6,
|
||||
"Domains": [
|
||||
"mymerrill.com",
|
||||
"ml.com",
|
||||
"merrilledge.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 7,
|
||||
"Domains": [
|
||||
"accountonline.com",
|
||||
"citi.com",
|
||||
"citibank.com",
|
||||
"citicards.com",
|
||||
"citibankonline.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 8,
|
||||
"Domains": [
|
||||
"cnet.com",
|
||||
"cnettv.com",
|
||||
"com.com",
|
||||
"download.com",
|
||||
"news.com",
|
||||
"search.com",
|
||||
"upload.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 9,
|
||||
"Domains": [
|
||||
"bananarepublic.com",
|
||||
"gap.com",
|
||||
"oldnavy.com",
|
||||
"piperlime.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 10,
|
||||
"Domains": [
|
||||
"bing.com",
|
||||
"hotmail.com",
|
||||
"live.com",
|
||||
"microsoft.com",
|
||||
"msn.com",
|
||||
"passport.net",
|
||||
"windows.com",
|
||||
"microsoftonline.com",
|
||||
"office365.com",
|
||||
"microsoftstore.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 11,
|
||||
"Domains": [
|
||||
"ua2go.com",
|
||||
"ual.com",
|
||||
"united.com",
|
||||
"unitedwifi.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 12,
|
||||
"Domains": [
|
||||
"overture.com",
|
||||
"yahoo.com",
|
||||
"flickr.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 13,
|
||||
"Domains": [
|
||||
"zonealarm.com",
|
||||
"zonelabs.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 14,
|
||||
"Domains": [
|
||||
"paypal.com",
|
||||
"paypal-search.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 15,
|
||||
"Domains": [
|
||||
"avon.com",
|
||||
"youravon.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 16,
|
||||
"Domains": [
|
||||
"diapers.com",
|
||||
"soap.com",
|
||||
"wag.com",
|
||||
"yoyo.com",
|
||||
"beautybar.com",
|
||||
"casa.com",
|
||||
"afterschool.com",
|
||||
"vine.com",
|
||||
"bookworm.com",
|
||||
"look.com",
|
||||
"vinemarket.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 17,
|
||||
"Domains": [
|
||||
"1800contacts.com",
|
||||
"800contacts.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 18,
|
||||
"Domains": [
|
||||
"amazon.com",
|
||||
"amazon.co.uk",
|
||||
"amazon.ca",
|
||||
"amazon.de",
|
||||
"amazon.fr",
|
||||
"amazon.es",
|
||||
"amazon.it",
|
||||
"amazon.com.au",
|
||||
"amazon.co.nz",
|
||||
"amazon.co.jp",
|
||||
"amazon.in"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 19,
|
||||
"Domains": [
|
||||
"cox.com",
|
||||
"cox.net",
|
||||
"coxbusiness.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 20,
|
||||
"Domains": [
|
||||
"mynortonaccount.com",
|
||||
"norton.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 21,
|
||||
"Domains": [
|
||||
"verizon.com",
|
||||
"verizon.net"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 22,
|
||||
"Domains": [
|
||||
"rakuten.com",
|
||||
"buy.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 23,
|
||||
"Domains": [
|
||||
"siriusxm.com",
|
||||
"sirius.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 24,
|
||||
"Domains": [
|
||||
"ea.com",
|
||||
"origin.com",
|
||||
"play4free.com",
|
||||
"tiberiumalliance.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 25,
|
||||
"Domains": [
|
||||
"37signals.com",
|
||||
"basecamp.com",
|
||||
"basecamphq.com",
|
||||
"highrisehq.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 26,
|
||||
"Domains": [
|
||||
"steampowered.com",
|
||||
"steamcommunity.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 27,
|
||||
"Domains": [
|
||||
"chart.io",
|
||||
"chartio.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 28,
|
||||
"Domains": [
|
||||
"gotomeeting.com",
|
||||
"citrixonline.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 29,
|
||||
"Domains": [
|
||||
"gogoair.com",
|
||||
"gogoinflight.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 30,
|
||||
"Domains": [
|
||||
"mysql.com",
|
||||
"oracle.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 31,
|
||||
"Domains": [
|
||||
"discover.com",
|
||||
"discovercard.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 32,
|
||||
"Domains": [
|
||||
"dcu.org",
|
||||
"dcu-online.org"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 33,
|
||||
"Domains": [
|
||||
"healthcare.gov",
|
||||
"cms.gov"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 34,
|
||||
"Domains": [
|
||||
"pepco.com",
|
||||
"pepcoholdings.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 35,
|
||||
"Domains": [
|
||||
"century21.com",
|
||||
"21online.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 36,
|
||||
"Domains": [
|
||||
"comcast.com",
|
||||
"comcast.net",
|
||||
"xfinity.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 37,
|
||||
"Domains": [
|
||||
"cricketwireless.com",
|
||||
"aiowireless.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 38,
|
||||
"Domains": [
|
||||
"mandtbank.com",
|
||||
"mtb.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 39,
|
||||
"Domains": [
|
||||
"dropbox.com",
|
||||
"getdropbox.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 40,
|
||||
"Domains": [
|
||||
"snapfish.com",
|
||||
"snapfish.ca"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 41,
|
||||
"Domains": [
|
||||
"alibaba.com",
|
||||
"aliexpress.com",
|
||||
"aliyun.com",
|
||||
"net.cn",
|
||||
"www.net.cn"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 42,
|
||||
"Domains": [
|
||||
"playstation.com",
|
||||
"sonyentertainmentnetwork.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 43,
|
||||
"Domains": [
|
||||
"mercadolivre.com",
|
||||
"mercadolivre.com.br",
|
||||
"mercadolibre.com",
|
||||
"mercadolibre.com.ar",
|
||||
"mercadolibre.com.mx"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 44,
|
||||
"Domains": [
|
||||
"zendesk.com",
|
||||
"zopim.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 45,
|
||||
"Domains": [
|
||||
"autodesk.com",
|
||||
"tinkercad.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 46,
|
||||
"Domains": [
|
||||
"railnation.ru",
|
||||
"railnation.de",
|
||||
"rail-nation.com",
|
||||
"railnation.gr",
|
||||
"railnation.us",
|
||||
"trucknation.de",
|
||||
"traviangames.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 47,
|
||||
"Domains": [
|
||||
"wpcu.coop",
|
||||
"wpcuonline.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 48,
|
||||
"Domains": [
|
||||
"mathletics.com",
|
||||
"mathletics.com.au",
|
||||
"mathletics.co.uk"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 49,
|
||||
"Domains": [
|
||||
"discountbank.co.il",
|
||||
"telebank.co.il"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 50,
|
||||
"Domains": [
|
||||
"mi.com",
|
||||
"xiaomi.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 52,
|
||||
"Domains": [
|
||||
"postepay.it",
|
||||
"poste.it"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 51,
|
||||
"Domains": [
|
||||
"facebook.com",
|
||||
"messenger.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 53,
|
||||
"Domains": [
|
||||
"skysports.com",
|
||||
"skybet.com",
|
||||
"skyvegas.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 54,
|
||||
"Domains": [
|
||||
"disneymoviesanywhere.com",
|
||||
"go.com",
|
||||
"disney.com",
|
||||
"dadt.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 55,
|
||||
"Domains": [
|
||||
"pokemon-gl.com",
|
||||
"pokemon.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 56,
|
||||
"Domains": [
|
||||
"myuv.com",
|
||||
"uvvu.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 58,
|
||||
"Domains": [
|
||||
"mdsol.com",
|
||||
"imedidata.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 57,
|
||||
"Domains": [
|
||||
"bank-yahav.co.il",
|
||||
"bankhapoalim.co.il"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 59,
|
||||
"Domains": [
|
||||
"sears.com",
|
||||
"shld.net"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 60,
|
||||
"Domains": [
|
||||
"xiami.com",
|
||||
"alipay.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 61,
|
||||
"Domains": [
|
||||
"belkin.com",
|
||||
"seedonk.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 62,
|
||||
"Domains": [
|
||||
"turbotax.com",
|
||||
"intuit.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 63,
|
||||
"Domains": [
|
||||
"shopify.com",
|
||||
"myshopify.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 64,
|
||||
"Domains": [
|
||||
"ebay.com",
|
||||
"ebay.de",
|
||||
"ebay.ca",
|
||||
"ebay.in",
|
||||
"ebay.co.uk",
|
||||
"ebay.com.au"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 65,
|
||||
"Domains": [
|
||||
"techdata.com",
|
||||
"techdata.ch"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 66,
|
||||
"Domains": [
|
||||
"schwab.com",
|
||||
"schwabplan.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 68,
|
||||
"Domains": [
|
||||
"tesla.com",
|
||||
"teslamotors.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 69,
|
||||
"Domains": [
|
||||
"morganstanley.com",
|
||||
"morganstanleyclientserv.com",
|
||||
"stockplanconnect.com",
|
||||
"ms.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 70,
|
||||
"Domains": [
|
||||
"taxact.com",
|
||||
"taxactonline.com"
|
||||
],
|
||||
"Excluded": false
|
||||
},
|
||||
{
|
||||
"Type": 71,
|
||||
"Domains": [
|
||||
"mediawiki.org",
|
||||
"wikibooks.org",
|
||||
"wikidata.org",
|
||||
"wikimedia.org",
|
||||
"wikinews.org",
|
||||
"wikipedia.org",
|
||||
"wikiquote.org",
|
||||
"wikisource.org",
|
||||
"wikiversity.org",
|
||||
"wikivoyage.org",
|
||||
"wiktionary.org"
|
||||
],
|
||||
"Excluded": false
|
||||
}
|
||||
]
|
|
@ -71,7 +71,7 @@ use rocket_contrib::{Json, Value};
|
|||
|
||||
use db::DbConn;
|
||||
|
||||
use api::JsonResult;
|
||||
use api::{JsonResult, EmptyResult};
|
||||
use auth::Headers;
|
||||
|
||||
#[put("/devices/identifier/<uuid>/clear-token")]
|
||||
|
@ -88,23 +88,54 @@ fn put_device_token(uuid: String, conn: DbConn) -> JsonResult {
|
|||
#[derive(Deserialize, Debug)]
|
||||
#[allow(non_snake_case)]
|
||||
struct EquivDomainData {
|
||||
ExcludedGlobalEquivalentDomains: Vec<i32>,
|
||||
EquivalentDomains: Vec<Vec<String>>,
|
||||
ExcludedGlobalEquivalentDomains: Option<Vec<i32>>,
|
||||
EquivalentDomains: Option<Vec<Vec<String>>>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[allow(non_snake_case)]
|
||||
struct GlobalDomain {
|
||||
Type: i32,
|
||||
Domains: Vec<String>,
|
||||
Excluded: bool,
|
||||
}
|
||||
|
||||
const GLOBAL_DOMAINS: &'static str = include_str!("global_domains.json");
|
||||
|
||||
#[get("/settings/domains")]
|
||||
fn get_eq_domains() -> JsonResult {
|
||||
err!("Not implemented")
|
||||
fn get_eq_domains(headers: Headers, conn: DbConn) -> JsonResult {
|
||||
let user = headers.user;
|
||||
use serde_json::from_str;
|
||||
|
||||
let equivalent_domains: Vec<Vec<String>> = from_str(&user.equivalent_domains).unwrap();
|
||||
let excluded_globals: Vec<i32> = from_str(&user.excluded_globals).unwrap();
|
||||
|
||||
let mut globals: Vec<GlobalDomain> = from_str(GLOBAL_DOMAINS).unwrap();
|
||||
|
||||
for global in &mut globals {
|
||||
global.Excluded = excluded_globals.contains(&global.Type);
|
||||
}
|
||||
|
||||
Ok(Json(json!({
|
||||
"EquivalentDomains": equivalent_domains,
|
||||
"GlobalEquivalentDomains": globals
|
||||
})))
|
||||
}
|
||||
|
||||
#[post("/settings/domains", data = "<data>")]
|
||||
fn post_eq_domains(data: Json<EquivDomainData>, headers: Headers, conn: DbConn) -> JsonResult {
|
||||
let excluded_globals = &data.ExcludedGlobalEquivalentDomains;
|
||||
let equivalent_domains = &data.EquivalentDomains;
|
||||
fn post_eq_domains(data: Json<EquivDomainData>, headers: Headers, conn: DbConn) -> EmptyResult {
|
||||
let data: EquivDomainData = data.into_inner();
|
||||
|
||||
let user = headers.user;
|
||||
let excluded_globals = data.ExcludedGlobalEquivalentDomains.unwrap_or(Vec::new());
|
||||
let equivalent_domains = data.EquivalentDomains.unwrap_or(Vec::new());
|
||||
|
||||
//BODY. "{\"ExcludedGlobalEquivalentDomains\":[2],\"EquivalentDomains\":[[\"example.org\",\"example.net\"]]}"
|
||||
let mut user = headers.user;
|
||||
use serde_json::to_string;
|
||||
|
||||
err!("Not implemented")
|
||||
user.excluded_globals = to_string(&excluded_globals).unwrap_or("[]".to_string());
|
||||
user.equivalent_domains = to_string(&equivalent_domains).unwrap_or("[]".to_string());
|
||||
|
||||
user.save(&conn);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue