Merge branch 'main' of https://gitea.ndda.fr/apxtrib/apxtrib
This commit is contained in:
		| @@ -73,8 +73,7 @@ | ||||
|       </code> | ||||
|       <hr> | ||||
|       <h3>Logout</h3> | ||||
|       <button type="button" class="btn btn-outline-success btn-sm" | ||||
|         onclick="pagans.logout();"> | ||||
|       <button type="button" class="btn btn-outline-success btn-sm" onclick="pagans.logout();"> | ||||
|         Remove headers</button> | ||||
|       <hr> | ||||
|       <h3>I prove that i own this alias</h3> | ||||
| @@ -89,7 +88,8 @@ | ||||
|       </div> | ||||
|       <textarea rows="5" id="privatekeyauth"></textarea> | ||||
|       <button class="btn btn-primary" | ||||
|         onclick="pagans.authentifyme(document.getElementById('inputaliasauth').value,document.getElementById('inputpassphraseauth').value,document.getElementById('privatekeyauth').value);alert('Click on Test it to check')">Sign my header</button> | ||||
|         onclick="pagans.authentifyme(document.getElementById('inputaliasauth').value,document.getElementById('inputpassphraseauth').value,document.getElementById('privatekeyauth').value);alert('Click on Test it to check')">Sign | ||||
|         my header</button> | ||||
|       <hr> | ||||
|       <h3>Create a decentralized Identity</h3> | ||||
|       <p>apXtrib allow you to create keys to identify yourself with a universal alias</p> | ||||
| @@ -148,10 +148,10 @@ | ||||
|       <div id="downloadkeys" class="btn-group d-none"> | ||||
|         <p>Download your keys at least PrivateKey this have to save in a secret place</p> | ||||
|         <button id="privatekey" key="" class="btn btn-outline-primary" | ||||
|           onclick="app.downloadlink('tmp.privateKey',apx.data,apx.data.headers.xapp);">Download | ||||
|           onclick="app.downloadlink('tmp.privateKey',apx.data,apx.data.headers.xalias);">Download | ||||
|           PrivateKey</button> | ||||
|         <button id="publickey" key="" class="btn btn-outline-primary" | ||||
|           onclick="app.downloadlink('tmp.publicKey',apx.data,apx.data.headers.xapp);">Download | ||||
|           onclick="app.downloadlink('tmp.publicKey',apx.data,apx.data.headers.xalias);">Download | ||||
|           PublicKey</button> | ||||
|       </div> | ||||
|       <div id="createId" class="col-12 d-none"> | ||||
|   | ||||
| @@ -1,23 +0,0 @@ | ||||
| <div class="container"> | ||||
| <h5>How to identify ourself</h5> | ||||
| <p>You need to know your alias and to have your privateKey file</p> | ||||
|  <div class="mb-3"> | ||||
|     <label for="youralias" class="form-label">Your alias</label> | ||||
|     <input type="email" class="form-control" id="youralias" aria-describedby="aliasHelp"> | ||||
|     <div id="aliasHelp" class="form-text">Your unique alias when you create your account</div> | ||||
|   </div> | ||||
|   <div class="mb-3"> | ||||
|     <label for="inputprivateKey" class="form-label">Copy & paste or load your private Key</label> | ||||
|     <textarea type="password" class="form-control" id="inputprivateKey" rows="6"></textarea> | ||||
|     <div id="inputprivateKey" class="form-text">I forgot my keys, <a onclick="">click to request it with my email recovery</a> or <a onclick="">Click to receive it from my alias</a> </div> | ||||
|   </div> | ||||
|   <div class="mb-3"> | ||||
|     <label for="emailrecovery" class="form-label">Your email recovery</label> | ||||
|     <input type="email" class="form-control" id="emailrecovery" placeholder="name@example.com"> | ||||
|   </div> | ||||
|   <div class="input-group"> | ||||
|     <input type="file" class="form-control" id="inputGroupFile04" aria-describedby="inputGroupFileAddon04" aria-label="Upload"> | ||||
|     <button class="btn btn-outline-secondary" type="button" id="inputGroupFileAddon04">Button</button> | ||||
|   </div> | ||||
|   <button type="submit" class="btn btn-primary d-none">Identify you</button> | ||||
| </div> | ||||
| @@ -19,6 +19,50 @@ const conf = require(`${process.env.dirtown}/conf.json`); | ||||
|  | ||||
| const Pagans = {}; | ||||
|  | ||||
| Pagans.getalias = (alias) => { | ||||
|   console.log(`${conf.dirapi}/nationchains/pagans/itm/${alias}.json`); | ||||
|   if (fs.existsSync(`${conf.dirapi}/nationchains/pagans/itm/${alias}.json`)) { | ||||
|     return { | ||||
|       status: 200, | ||||
|       ref: "Pagans", | ||||
|       msg: "aliasexist", | ||||
|       data: fs.readJsonSync( | ||||
|         `${conf.dirapi}/nationchains/pagans/itm/${alias}.json` | ||||
|       ), | ||||
|     }; | ||||
|   } else { | ||||
|     return { | ||||
|       status: 404, | ||||
|       ref: "Pagans", | ||||
|       msg: "aliasdoesnotexist", | ||||
|       data: { alias }, | ||||
|     }; | ||||
|   } | ||||
| }; | ||||
|  | ||||
| Pagans.getperson = (alias, tribeid) => { | ||||
|   if ( | ||||
|     fs.existsSync(`${conf.dirtown}/tribes/${tribeid}/person/itm/${alias}.json`) | ||||
|   ) { | ||||
|     const person = fs.readJsonSync( | ||||
|       `${conf.dirtown}/tribes/${tribeid}/person/itm/${alias}.json` | ||||
|     ); | ||||
|     return { | ||||
|       status: 200, | ||||
|       ref: "Pagans", | ||||
|       msg: "personexist", | ||||
|       data: person, | ||||
|     }; | ||||
|   } else { | ||||
|     return { | ||||
|       status: 404, | ||||
|       ref: "Pagans", | ||||
|       msg: "persondoesnotexist", | ||||
|       data: { alias, tribeid }, | ||||
|     }; | ||||
|   } | ||||
| }; | ||||
|  | ||||
| Pagans.create = (alias, publicKey) => { | ||||
|   /** | ||||
|    * @param {string} alias a unique alias that identify an identity | ||||
|   | ||||
| @@ -47,6 +47,15 @@ Delete idem | ||||
| Owner means it can be Write/Delete if field OWNER contain the UUID that try to act on this object. Usefull to allow someone to fully manage its objects. | ||||
|  | ||||
| */ | ||||
| router.get("/alias/:alias", (req, res) => { | ||||
|   res.send(Pagans.getalias(req.params.alias)); | ||||
| }); | ||||
| router.get("/person/:alias", (req, res) => { | ||||
|   // check accessright  for req.session.header.xalias to see if jhe can get person data | ||||
|   // if req.param.alias ==  req.session.header.xalias  => Owner | ||||
|   // else need accessright to on person  set at R | ||||
|   res.send(Pagans.getperson(req.params.alias, req.session.header.xtribe)); | ||||
| }); | ||||
|  | ||||
| router.get("/isauth", checkHeaders, isAuthenticated, (req, res) => { | ||||
|   /** | ||||
|   | ||||
							
								
								
									
										25
									
								
								apxtrib.js
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								apxtrib.js
									
									
									
									
									
								
							| @@ -180,15 +180,24 @@ if ( | ||||
| ) { | ||||
|   setconf(param); | ||||
| } | ||||
| // From git setup-xx is set to nationId:ant townId:farmdev (keyword for dev) | ||||
| let infotown = {nationId:"ants",townId:"devfarm",dns:["devfarm-ants"],comment:"Auto generate setup from apxtrib after node apxtrib nationId:value townId:value dns:domaine_to_access"} | ||||
| if (fs.existsSync(`${__dirname}/adminapi/www/adminapx/conf/setup_xx.json`)){ | ||||
| // setup_xx.json is gitignore so at first install we are in dev configuration | ||||
| let infotown = { | ||||
|   nationId: "ants", | ||||
|   townId: "devfarm", | ||||
|   dns: ["devfarm-ants"], | ||||
|   comment: | ||||
|     "Auto generate setup from apxtrib after node apxtrib nationId:value townId:value dns:domaine_to_access", | ||||
| }; | ||||
| if (fs.existsSync(`${__dirname}/adminapi/www/adminapx/conf/setup_xx.json`)) { | ||||
|   infotown = fs.readJsonSync( | ||||
|     `${__dirname}/adminapi/www/adminapx/conf/setup_xx.json` | ||||
| ); | ||||
|    }else{ | ||||
|     fs.outputJsonSync(`${__dirname}/adminapi/www/adminapx/conf/setup_xx.json`,infotown); | ||||
|    } | ||||
|   ); | ||||
| } else { | ||||
|   fs.outputJsonSync( | ||||
|     `${__dirname}/adminapi/www/adminapx/conf/setup_xx.json`, | ||||
|     infotown | ||||
|   ); | ||||
| } | ||||
|  | ||||
| if ( | ||||
|   !fs.existsSync( | ||||
| @@ -198,7 +207,7 @@ if ( | ||||
|   ) || | ||||
|   !fs.existsSync(`${__dirname}/adminapi/www/nginx_adminapx.conf`) | ||||
| ) { | ||||
|   // Run setup with information setup_xx.json | ||||
|   // Case of new town or request a reset of dns to access adminapx | ||||
|   setconf(infotown); | ||||
| } | ||||
| const conf = require(path.resolve( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user