Commit 9b8cdb72 authored by Rosanny Sihombing's avatar Rosanny Sihombing
Browse files

gitlab activation: the skeleton

parent d61008fd
......@@ -69,7 +69,7 @@ var methods = {
})
},
getUserByEmail: function(email, callback) {
dbconn.user.query('SELECT verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality, m4lab_idp FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
dbconn.user.query('SELECT id, verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality, m4lab_idp FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
if (err) {
throw err;
}
......@@ -212,6 +212,25 @@ var methods = {
})
callback(err)
})
},
/* ===== GitLab ===== */
getGitlabId: function(userId, callback){
let gitlabUserId
dbconn.user.query('SELECT gu.gitlab_userId FROM user_gitlab gu, user u WHERE u.id = "' +userId+'" and gu.user_id = u.id', function (err, rows) {
if (err) {
throw err
}
else if(rows[0]) {
gitlabUserId = rows[0].gitlab_userId
}
callback(gitlabUserId, err)
})
},
addGitlabUser: function(data, callback){
dbconn.user.query('INSERT INTO user_gitlab SET ?', data, function (err) {
if (err) throw err
callback(err)
})
}
};
......
......@@ -10,6 +10,7 @@ const salt = 64; // salt length
const async = require('async')
const crypto = require('crypto')
const mailer = require('./mailer')
const superagent = require('superagent')
module.exports = function (app, config, passport, i18n) {
......@@ -180,6 +181,34 @@ module.exports = function (app, config, passport, i18n) {
methods.getUserByEmail(req.user.email, function(data, err){
if (!err) {
if (data.verificationStatus == 1) {
// start =============== RS: MLAB-183
let userId = data.id
methods.getGitlabId(userId, function(data, err){
if (!err) {
if (data) {
console.log("TODO: GitLab is already activated for this user. Allow project creation.")
}
else {
superagent.get('https://transfer.hft-stuttgart.de/gitlab/api/v4/users?private_token='+config.gitlab.token_readWriteProjects+'&search='+req.user.email)
.then(res => {
if (res.body.length > 0) {
let gitlabActivationData = {
user_id: userId,
gitlab_userId: res.body[0].id
}
methods.addGitlabUser(gitlabActivationData, function(err){})
}
else {
console.log('TODO: Show gitlab activation button: transfer.hft-stuttgart.de/gitlab')
}
})
.catch(err => {
console.log(err.message)
});
}
}
})
// end =============== RS: MLAB-183
res.render(lang+'/account/services', {
user: data
});
......
Markdown is supported
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