Commit bcc720ed authored by Rosanny Sihombing's avatar Rosanny Sihombing
Browse files

MLAB-671

parent 681601bb
"use strict";function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var _fs=_interopRequireDefault(require("fs")),_async=_interopRequireDefault(require("async")),_bcryptjs=_interopRequireDefault(require("bcryptjs")),passportSaml=_interopRequireWildcard(require("passport-saml")),_dbconn=require("../config/dbconn"),_dbController=require("../controller/dbController"),_gitlabController=require("../controller/gitlabController"),_const=require("../config/const"),_mailer=require("../config/mailer"),_user=require("../classes/user"),_website=require("../classes/website"),_repo=require("../classes/repo");function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!==_typeof(a)&&"function"!=typeof a)return{default:a};var c=_getRequireWildcardCache(b);if(c&&c.has(a))return c.get(a);var d={},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!=f&&Object.prototype.hasOwnProperty.call(a,f)){var g=e?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(d,f,g):d[f]=a[f]}return d["default"]=a,c&&c.set(a,d),d}function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */function a(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}),a[b]}function b(a,b,e,f){var g=b&&b.prototype instanceof d?b:d,h=Object.create(g.prototype),j=new l(f||[]);return h._invoke=function(a,b,d){var e="suspendedStart";return function(f,g){if("executing"===e)throw new Error("Generator is already running");if("completed"===e){if("throw"===f)throw g;return n()}for(d.method=f,d.arg=g;;){var h=d.delegate;if(h){var j=i(h,d);if(j){if(j===v)continue;return j}}if("next"===d.method)d.sent=d._sent=d.arg;else if("throw"===d.method){if("suspendedStart"===e)throw e="completed",d.arg;d.dispatchException(d.arg)}else"return"===d.method&&d.abrupt("return",d.arg);e="executing";var k=c(a,b,d);if("normal"===k.type){if(e=d.done?"completed":"suspendedYield",k.arg===v)continue;return{value:k.arg,done:d.done}}"throw"===k.type&&(e="completed",d.method="throw",d.arg=k.arg)}}}(a,e,j),h}function c(a,b,c){try{return{type:"normal",arg:a.call(b,c)}}catch(a){return{type:"throw",arg:a}}}function d(){}function e(){}function f(){}function g(b){["next","throw","return"].forEach(function(c){a(b,c,function(a){return this._invoke(c,a)})})}function h(a,b){function d(e,f,g,h){var i=c(a[e],a,f);if("throw"!==i.type){var j=i.arg,k=j.value;return k&&"object"==_typeof(k)&&q.call(k,"__await")?b.resolve(k.__await).then(function(a){d("next",a,g,h)},function(a){d("throw",a,g,h)}):b.resolve(k).then(function(a){j.value=a,g(j)},function(a){return d("throw",a,g,h)})}h(i.arg)}var e;this._invoke=function(a,c){function f(){return new b(function(b,e){d(a,c,b,e)})}return e=e?e.then(f,f):f()}}function i(a,b){var d=a.iterator[b.method];if(void 0===d){if(b.delegate=null,"throw"===b.method){if(a.iterator["return"]&&(b.method="return",b.arg=void 0,i(a,b),"throw"===b.method))return v;b.method="throw",b.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var e=c(d,a.iterator,b.arg);if("throw"===e.type)return b.method="throw",b.arg=e.arg,b.delegate=null,v;var f=e.arg;return f?f.done?(b[a.resultName]=f.value,b.next=a.nextLoc,"return"!==b.method&&(b.method="next",b.arg=void 0),b.delegate=null,v):f:(b.method="throw",b.arg=new TypeError("iterator result is not an object"),b.delegate=null,v)}function j(a){var b={tryLoc:a[0]};1 in a&&(b.catchLoc=a[1]),2 in a&&(b.finallyLoc=a[2],b.afterLoc=a[3]),this.tryEntries.push(b)}function k(a){var b=a.completion||{};b.type="normal",delete b.arg,a.completion=b}function l(a){this.tryEntries=[{tryLoc:"root"}],a.forEach(j,this),this.reset(!0)}function m(a){if(a){var b=a[s];if(b)return b.call(a);if("function"==typeof a.next)return a;if(!isNaN(a.length)){var c=-1,d=function b(){for(;++c<a.length;)if(q.call(a,c))return b.value=a[c],b.done=!1,b;return b.value=void 0,b.done=!0,b};return d.next=d}}return{next:n}}function n(){return{value:void 0,done:!0}}_regeneratorRuntime=function(){return o};var o={},p=Object.prototype,q=p.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},s=r.iterator||"@@iterator",t=r.asyncIterator||"@@asyncIterator",u=r.toStringTag||"@@toStringTag";try{a({},"")}catch(b){a=function(a,b,c){return a[b]=c}}o.wrap=b;var v={},w={};a(w,s,function(){return this});var x=Object.getPrototypeOf,y=x&&x(x(m([])));y&&y!==p&&q.call(y,s)&&(w=y);var z=f.prototype=d.prototype=Object.create(w);return e.prototype=f,a(z,"constructor",f),a(f,"constructor",e),e.displayName=a(f,u,"GeneratorFunction"),o.isGeneratorFunction=function(a){var b="function"==typeof a&&a.constructor;return!!b&&(b===e||"GeneratorFunction"===(b.displayName||b.name))},o.mark=function(b){return Object.setPrototypeOf?Object.setPrototypeOf(b,f):(b.__proto__=f,a(b,u,"GeneratorFunction")),b.prototype=Object.create(z),b},o.awrap=function(a){return{__await:a}},g(h.prototype),a(h.prototype,t,function(){return this}),o.AsyncIterator=h,o.async=function(a,c,d,e,f){void 0===f&&(f=Promise);var g=new h(b(a,c,d,e),f);return o.isGeneratorFunction(c)?g:g.next().then(function(a){return a.done?a.value:g.next()})},g(z),a(z,u,"Generator"),a(z,s,function(){return this}),a(z,"toString",function(){return"[object Generator]"}),o.keys=function(a){var b=[];for(var c in a)b.push(c);return b.reverse(),function c(){for(;b.length;){var d=b.pop();if(d in a)return c.value=d,c.done=!1,c}return c.done=!0,c}},o.values=m,l.prototype={constructor:l,reset:function reset(a){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!a)for(var b in this)"t"===b.charAt(0)&&q.call(this,b)&&!isNaN(+b.slice(1))&&(this[b]=void 0)},stop:function stop(){this.done=!0;var a=this.tryEntries[0].completion;if("throw"===a.type)throw a.arg;return this.rval},dispatchException:function dispatchException(a){function b(b,d){return f.type="throw",f.arg=a,c.next=b,d&&(c.method="next",c.arg=void 0),!!d}if(this.done)throw a;for(var c=this,d=this.tryEntries.length-1;0<=d;--d){var e=this.tryEntries[d],f=e.completion;if("root"===e.tryLoc)return b("end");if(e.tryLoc<=this.prev){var g=q.call(e,"catchLoc"),h=q.call(e,"finallyLoc");if(g&&h){if(this.prev<e.catchLoc)return b(e.catchLoc,!0);if(this.prev<e.finallyLoc)return b(e.finallyLoc)}else if(!g){if(!h)throw new Error("try statement without catch or finally");if(this.prev<e.finallyLoc)return b(e.finallyLoc)}else if(this.prev<e.catchLoc)return b(e.catchLoc,!0)}}},abrupt:function abrupt(a,b){for(var c,d=this.tryEntries.length-1;0<=d;--d)if(c=this.tryEntries[d],c.tryLoc<=this.prev&&q.call(c,"finallyLoc")&&this.prev<c.finallyLoc){var e=c;break}e&&("break"===a||"continue"===a)&&e.tryLoc<=b&&b<=e.finallyLoc&&(e=null);var f=e?e.completion:{};return f.type=a,f.arg=b,e?(this.method="next",this.next=e.finallyLoc,v):this.complete(f)},complete:function complete(a,b){if("throw"===a.type)throw a.arg;return"break"===a.type||"continue"===a.type?this.next=a.arg:"return"===a.type?(this.rval=this.arg=a.arg,this.method="return",this.next="end"):"normal"===a.type&&b&&(this.next=b),v},finish:function finish(a){for(var b,c=this.tryEntries.length-1;0<=c;--c)if(b=this.tryEntries[c],b.finallyLoc===a)return this.complete(b.completion,b.afterLoc),k(b),v},catch:function _catch(a){for(var b,c=this.tryEntries.length-1;0<=c;--c)if(b=this.tryEntries[c],b.tryLoc===a){var d=b.completion;if("throw"===d.type){var e=d.arg;k(b)}return e}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(a,b,c){return this.delegate={iterator:m(a),resultName:b,nextLoc:c},"next"===this.method&&(this.arg=void 0),v}},o}function asyncGeneratorStep(a,b,c,d,e,f,g){try{var h=a[f](g),i=h.value}catch(a){return void c(a)}h.done?b(i):Promise.resolve(i).then(d,e)}function _asyncToGenerator(a){return function(){var b=this,c=arguments;return new Promise(function(d,e){function f(a){asyncGeneratorStep(h,d,e,f,g,"next",a)}function g(a){asyncGeneratorStep(h,d,e,f,g,"throw",a)}var h=a.apply(b,c);f(void 0)})}}var SamlStrategy=passportSaml.Strategy,saltRounds=10,salt=64,logoDir="public/upload/",defaultLogo="public/default/logo.png";module.exports=function(a,b,c,d){// ======== APP ROUTES - ACCOUNT ====================
function e(){return f.apply(this,arguments)}function f(){return f=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function b(a){var c,d,e;return _regeneratorRuntime().wrap(function f(b){for(;1;)switch(b.prev=b.next){case 0:return b.next=2,_dbController.dbController.getUserByEmail(a);case 2:if(c=b.sent,c){b.next=8;break}return console.log("no user found"),b.abrupt("return",null);case 8:return d=new _user.User(c.id,a,c.salutation,c.title,c.firstname,c.lastname,c.industry,c.organisation,c.speciality,c.m4lab_idp,c.verificationStatus),b.next=11,_dbController.dbController.getGitlabId(d.id);case 11:return e=b.sent,e&&d.setGitlabUserId(e),b.abrupt("return",d);case 14:case"end":return b.stop();}},b)})),f.apply(this,arguments)}c.serializeUser(function(a,b){b(null,a)}),c.deserializeUser(function(a,b){b(null,a)});var g=new SamlStrategy({// URL that goes from the Identity Provider -> Service Provider
callbackUrl:b.passport.saml.path,// Base address to call logout requests
logoutUrl:b.passport.saml.logoutUrl,entryPoint:b.passport.saml.entryPoint,issuer:b.passport.saml.issuer,identifierFormat:void 0,// Service Provider private key
decryptionPvk:_fs["default"].readFileSync(__dirname+"/cert/key.pem","utf8"),// Service Provider Certificate
privateKey:_fs["default"].readFileSync(__dirname+"/cert/key.pem","utf8"),// Identity Provider's public key
cert:_fs["default"].readFileSync(__dirname+"/cert/cert_idp.pem","utf8"),validateInResponseTo:!1,disableRequestedAuthnContext:!0},function(a,b){return b(null,{id:a.nameID,idFormat:a.nameIDFormat,email:a.email,firstName:a.givenName,lastName:a.sn})});// ============= SAML ==============
// to generate Service Provider's XML metadata
// ============= NEW GITLAB PAGES ===========================
// update a website
c.use(g),a.post(b.passport.saml.path,c.authenticate(b.passport.strategy,{failureRedirect:"/account/",failureFlash:!0}),function(a,b){b.redirect("/account/")}),a.get("/saml/metadata",function(a,b){b.type("application/xml");var c=g.generateServiceProviderMetadata(_fs["default"].readFileSync(__dirname+"/cert/cert.pem","utf8"));b.status(200).send(c)}),a.get("/",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f;return _regeneratorRuntime().wrap(function g(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=8;break;case 4:return c.next=6,e(a.user.email);case 6:f=c.sent,null==f?(console.error("user data is not found"),b.status(500).render(d+"/500",{error:"Your data is not found. Please try again."})):b.render(d+"/account/home",{user:f});case 8:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.get("/login",c.authenticate(b.passport.strategy,{successRedirect:"/",failureRedirect:"/login"})),a.get("/logout",function(a,b){return null==a.user?b.redirect("/"):(a.user.nameID=a.user.id,a.user.nameIDFormat=a.user.idFormat,g.logout(a,function(c,d){return a.logout(),a.session&&a.session.destroy(function(a){if(a)return console.log(a)}),b.redirect(d)}))}),a.get("/profile",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f;return _regeneratorRuntime().wrap(function g(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=8;break;case 4:return c.next=6,e(a.user.email);case 6:f=c.sent,null==f?b.redirect("/account/"):1===f.getVerificationStatus()?b.render(d+"/account/profile",{user:f}):b.redirect("/account/");case 8:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.get("/services",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f,g,h,i,j,k,l,m,n;return _regeneratorRuntime().wrap(function o(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=45;break;case 4:return c.next=6,e(a.user.email);case 6:if(f=c.sent,null!=f){c.next=11;break}b.redirect("/account/"),c.next=45;break;case 11:if(1===f.getVerificationStatus()){c.next=15;break}b.redirect("/account/"),c.next=45;break;case 15:if(g=[],h=[],!f.getGitlabUserId()){c.next=41;break}return c.next=20,_gitlabController.gitlabController.getUserProjects(f.getGitlabUserId());case 20:if(i=c.sent,!i){c.next=38;break}c.t0=_regeneratorRuntime().keys(i);case 23:if((c.t1=c.t0()).done){c.next=38;break}if(j=c.t1.value,!i[j].tag_list.includes("website")){c.next=34;break}return c.t2=new _website.Website(f.getGitlabUserId(),i[j].name,i[j].description,i[j].id,i[j].avatar_url,i[j].path_with_namespace),c.next=29,_gitlabController.gitlabController.getProjectPipelineLatestStatus(i[j].id);case 29:c.t3=c.sent,k={projectInformation:c.t2,pipelineStatus:c.t3},h.push(k),c.next=36;break;case 34:l=new _repo.Repo(f.getGitlabUserId(),i[j].name,i[j].description,i[j].id,i[j].avatar_url,i[j].path_with_namespace),g.push(l);case 36:c.next=23;break;case 38:b.render(d+"/account/services",{user:f,gitlabRepos:g,gitlabPages:h}),c.next=45;break;case 41:return c.next=43,_gitlabController.gitlabController.getUserByEmail(f.getEmail());case 43:m=c.sent,m?(n={user_id:f.getId(),gitlab_userId:m.id},_dbController.dbController.addGitlabUser(n,function(a){a?b.status(500).render(d+"/500",{error:a}):b.redirect("/account/services")})):b.render(d+"/account/services",{user:f,gitlabRepos:null,gitlabPages:null});case 45:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.get("/security",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f;return _regeneratorRuntime().wrap(function g(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=8;break;case 4:return c.next=6,e(a.user.email);case 6:f=c.sent,null==f?b.redirect("/account/"):1===f.getVerificationStatus()&&1===f.getIdpStatus()?b.render(d+"/account/security",{user:f}):b.redirect("/account/");case 8:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.post("/updateProfile",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var d,f,g;return _regeneratorRuntime().wrap(function h(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=17;break;case 4:return c.next=6,e(a.user.email);case 6:if(d=c.sent,null!=d){c.next=11;break}b.redirect("/account/"),c.next=17;break;case 11:return f={salutation:a.body.inputSalutation,title:a.body.inputTitle,firstname:a.body.inputFirstname,lastname:a.body.inputLastname,email:a.body.inputEmail,organisation:a.body.inputOrganisation,industry:a.body.inputIndustry,speciality:a.body.inputSpeciality},c.next=14,_dbController.dbController.updateUserById(d.getId(),f);case 14:g=c.sent,g?(d.updateProfile(f.salutation,f.title,f.firstname,f.lastname,f.email,f.organisation,f.industry,f.speciality),b.flash("success","Ihr Benutzerprofil wurde aktualisiert!")):b.flash("error","Failed"),b.redirect("/account/profile");case 17:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.post("/changePwd",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f,g,h,i;return _regeneratorRuntime().wrap(function j(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=8;break;case 4:return c.next=6,e(a.user.email);case 6:f=c.sent,null==f?b.redirect("/account/"):(g=a.body.inputCurrPwd,h=a.body.inputNewPwd,i=a.body.inputConfirm,_dbconn.dbConnection.user.query("SELECT password FROM credential WHERE user_id="+f.getId(),function(a,c){a&&(console.error(a),b.status(500).render(d+"/500",{error:a}));var e=c[0].password;// check if the password is correct
_bcryptjs["default"].compare(g,e,function(a,c){a?(console.error(a),b.status(500).render(d+"/500",{error:a})):c?h===i?_bcryptjs["default"].genSalt(saltRounds,function(a,c){_bcryptjs["default"].hash(h,c,/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function d(a,c){var e,g;return _regeneratorRuntime().wrap(function d(a){for(;1;)switch(a.prev=a.next){case 0:return e={password:c,user_id:f.getId()},a.next=3,_dbController.dbController.updateCredential(e);case 3:g=a.sent,g?(b.flash("success","Passwort aktualisiert!"),_mailer.mailer.options.to=f.getEmail(),_mailer.mailer.options.subject=_const.miscConst.updatePasswordMailSubject,_mailer.mailer.options.html=_const.miscConst.updatePasswordMailContent+"<div>"+_const.miscConst.mailSignature+"</div>",_mailer.mailer.transporter.sendMail(_mailer.mailer.options,function(a){a&&console.log(a)})):(console.log("Failed to reset password"),b.flash("error","Datenbankfehler: Passwort kann nicht ge\xE4ndert werden.")),b.redirect("/account/security");case 6:case"end":return a.stop();}},d)}));return function(b,c){return a.apply(this,arguments)}}())}):(b.flash("error","Passw\xF6rter stimmen nicht \xFCberein. Bitte stellen Sie sicher, dass Sie das Passwort beide Male genau gleich eingeben."),b.redirect("/account/security")):(b.flash("error","Das Passwort ist leider falsch. Bitte \xFCberpr\xFCfen Sie Ihre Eingabe."),b.redirect("/account/security"))})}));case 8:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.get("/resendVerificationEmail",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function d(a,c){var f,g,h,i;return _regeneratorRuntime().wrap(function j(d){for(;1;)switch(d.prev=d.next){case 0:if(a.isAuthenticated){d.next=4;break}c.redirect("/login"),d.next=15;break;case 4:return d.next=6,e(a.user.email);case 6:if(f=d.sent,null!=f){d.next=11;break}c.redirect("/login"),d.next=15;break;case 11:return d.next=13,_dbController.dbController.getVerificationTokenByUserId(f.id);case 13:g=d.sent,g?(h="Bitte best\xE4tigen Sie Ihr M4_LAB Benutzerkonto",i="<div>Lieber Nutzer,<br/><br/><p>vielen Dank f\xFCr Ihre Anmeldung am Transferportal der HFT Stuttgart. <br/>Um Ihre Anmeldung zu best\xE4tigen, klicken Sie bitte diesen Link: "+b.app.host+"/verifyAccount?token="+g+"<br/><br/>Ohne Best\xE4tigung Ihres Kontos m\xFCssen wir Ihr Konto leider nach 7 Tagen l\xF6schen.</p><br/>"+_const.miscConst.mailSignature+"</div>",_mailer.mailer.options.to=f.email,_mailer.mailer.options.subject=h,_mailer.mailer.options.html=i,_mailer.mailer.transporter.sendMail(_mailer.mailer.options,function(a){if(a)throw console.log("cannot send email"),a}),c.send(!0)):c.send(!1);case 15:case"end":return d.stop();}},d)}));return function(b,c){return a.apply(this,arguments)}}()),a.get("/newInformation",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f,g;return _regeneratorRuntime().wrap(function h(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=15;break;case 4:return c.next=6,e(a.user.email);case 6:if(f=c.sent,null!=f){c.next=11;break}b.redirect("/login"),c.next=15;break;case 11:return c.next=13,_gitlabController.gitlabController.getUserByEmail(f.getEmail());case 13:g=c.sent,g?b.render(d+"/account/newInformation",{user:f,gitlabUsername:g.username}):b.redirect("/account/services");case 15:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.post("/newInformation",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var d,f,g,h,i,j;return _regeneratorRuntime().wrap(function k(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=8;break;case 4:return c.next=6,e(a.user.email);case 6:d=c.sent,null==d?b.redirect("/login"):a.body.name||a.body.description?(f=a.body.name.toLowerCase().replace(/\s/g,"-"),g=a.body.description,h=a.body.template,i=new _website.Website(d.getGitlabUserId(),f,g),j=defaultLogo,a.files&&(j=a.files.logo),_async["default"].waterfall([function(b){a.files?j.mv(logoDir+j.name,function(a){j=logoDir+j.name,b(a,j)}):b(null,j)},/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a){var d;return _regeneratorRuntime().wrap(function e(c){for(;1;)switch(c.prev=c.next){case 0:return c.next=2,_gitlabController.gitlabController.createNewPages(i,a,h);case 2:d=c.sent,d.status?("has already been taken"===d.data.message.name?b.flash("error","Der Projektname '"+i.getName()+"' ist bereits vergeben, bitte w\xE4hlen Sie einen anderen Namen."):b.flash("error","Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.\xA0"),b.redirect("/account/newInformation")):(b.flash("success","Ihre Webseite wurde erstellt, aber noch nicht ver\xF6ffentlicht. Um Ihre Webseite endg\xFCltig zu ver\xF6ffentlichen, schlie\xDFen Sie die Einrichtung gem\xE4\xDF unten stehender Anleitung ab."),b.redirect("/account/updateInformation?id="+(d.id+"")));case 4:case"end":return c.stop();}},c)}));return function(b){return a.apply(this,arguments)}}()],function(b){null!=b&&console.log(b),a.files&&_fs["default"].unlink(j,function(a){null!=a&&console.log(a)})})):(b.flash("error","Bitte geben Sie die ben\xF6tigten Daten ein"),b.redirect("/account/newInformation"));case 8:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.get("/updateInformation",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var f,g,h;return _regeneratorRuntime().wrap(function i(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=19;break;case 4:return c.next=6,e(a.user.email);case 6:if(f=c.sent,null!=f){c.next=11;break}b.redirect("/login"),c.next=19;break;case 11:if(a.query.id){c.next=15;break}b.redirect("/account/services"),c.next=19;break;case 15:return c.next=17,_gitlabController.gitlabController.getProjectById(a.query.id);case 17:g=c.sent,g?g.owner?g.owner.id===f.getGitlabUserId()?(h=new _website.Website(f.getGitlabUserId(),g.name,g.description,a.query.id,g.avatar_url,g.path_with_namespace),b.render(d+"/account/updateInformation",{user:f,information:h})):(console.log(" ========= Access denied: Not your project"),b.redirect("/account/services")):(console.log(" ========= Project cannot be accessed, since it does not have an owner"),b.redirect("/account/services")):(console.log(" ========= Error or no project found"),b.redirect("/account/services"));case 19:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a.post("/updateInformation",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var d,f,g,h,i;return _regeneratorRuntime().wrap(function j(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=8;break;case 4:return c.next=6,e(a.user.email);case 6:d=c.sent,null==d?b.redirect("/login"):a.body.name||a.body.description?(f=a.body.name.toLowerCase().replace(/\s/g,"-"),g=a.body.description,h=new _website.Website(d.getGitlabUserId(),f,g,a.query.id),_async["default"].waterfall([function(b){a.files?(i=a.files.logo,i.mv(logoDir+(i.name+""),function(a){i=logoDir+(i.name+""),b(a,i)})):b(null,i)},/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a){var d;return _regeneratorRuntime().wrap(function e(c){for(;1;)switch(c.prev=c.next){case 0:return c.next=2,_gitlabController.gitlabController.updateProject(h,a);case 2:d=c.sent,d.status?"has already been taken"===d.data.message.name?b.flash("error","Der Projektname '"+(f+"' ist bereits vergeben, bitte w\xE4hlen Sie einen anderen Namen.")):b.flash("error","Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.\xA0"):(h.setLogo(d.avatar_url),h.setPath(d.path),b.flash("success","Ihre Website wurde aktualisiert")),b.redirect("/account/updateInformation?id="+(h.getId()+""));case 5:case"end":return c.stop();}},c)}));return function(b){return a.apply(this,arguments)}}()],function(a){null!=a&&console.log(a),i&&_fs["default"].unlink(i,function(a){null!=a&&console.log(a)})})):(b.flash("error","Bitte geben Sie die ben\xF6tigten Daten ein"),b.redirect("/account/updateInformation"));case 8:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}()),a["delete"]("/deleteProject",/*#__PURE__*/function(){var a=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function c(a,b){var d,f,g,h;return _regeneratorRuntime().wrap(function i(c){for(;1;)switch(c.prev=c.next){case 0:if(a.isAuthenticated()){c.next=4;break}b.redirect("/login"),c.next=33;break;case 4:return c.next=6,e(a.user.email);case 6:if(d=c.sent,null!=d){c.next=11;break}b.redirect("/login"),c.next=33;break;case 11:if(f=a.body.id,!f){c.next=32;break}return c.next=15,_gitlabController.gitlabController.getProjectById(f);case 15:if(g=c.sent,g){c.next=20;break}console.log(" ========= Error or no project found"),c.next=32;break;case 20:if(g.owner){c.next=24;break}console.log(" ========= Project cannot be accessed, since it does not have an owner"),c.next=32;break;case 24:if(g.owner.id===d.getGitlabUserId()){c.next=28;break}console.log(" ========= Access denied: Not your project"),c.next=32;break;case 28:return c.next=30,_gitlabController.gitlabController.deleteProjectById(f);case 30:h=c.sent,h||b.flash("error","Project cannot be deleted. Please try again.");case 32:b.redirect("/account/services");case 33:case"end":return c.stop();}},c)}));return function(b,c){return a.apply(this,arguments)}}())};
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment