]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/config/set-credentials-by-uri.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / lib / config / set-credentials-by-uri.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/config/set-credentials-by-uri.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/config/set-credentials-by-uri.js
new file mode 100644 (file)
index 0000000..31eab44
--- /dev/null
@@ -0,0 +1,42 @@
+var assert = require("assert")
+
+var toNerfDart = require("./nerf-dart.js")
+
+module.exports = setCredentialsByURI
+
+function setCredentialsByURI (uri, c) {
+  assert(uri && typeof uri === "string", "registry URL is required")
+  assert(c && typeof c === "object", "credentials are required")
+
+  var nerfed = toNerfDart(uri)
+
+  if (c.token) {
+    this.set(nerfed + ":_authToken", c.token, "user")
+    this.del(nerfed + ":_password",           "user")
+    this.del(nerfed + ":username",            "user")
+    this.del(nerfed + ":email",               "user")
+    this.del(nerfed + ":always-auth",         "user")
+  }
+  else if (c.username || c.password || c.email) {
+    assert(c.username, "must include username")
+    assert(c.password, "must include password")
+    assert(c.email, "must include email address")
+
+    this.del(nerfed + ":_authToken", "user")
+
+    var encoded = new Buffer(c.password, "utf8").toString("base64")
+    this.set(nerfed + ":_password", encoded,   "user")
+    this.set(nerfed + ":username", c.username, "user")
+    this.set(nerfed + ":email", c.email,       "user")
+
+    if (c.alwaysAuth !== undefined) {
+      this.set(nerfed + ":always-auth", c.alwaysAuth, "user")
+    }
+    else {
+      this.del(nerfed + ":always-auth", "user")
+    }
+  }
+  else {
+    throw new Error("No credentials to set.")
+  }
+}