diff --git a/routes/methods.js b/routes/methods.js
index 91b75af3914ac3003c770446014828594c1c518e..857454827af004a3d40b18d8679fd6d2db9acb1b 100644
--- a/routes/methods.js
+++ b/routes/methods.js
@@ -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)
+        })
     }
 };
 
diff --git a/routes/routes-account.js b/routes/routes-account.js
index 5e6292c184384c7be83f5a244d5972b665fe23ce..1f20a7801451773bc40a5e74c40de09f0133a607 100644
--- a/routes/routes-account.js
+++ b/routes/routes-account.js
@@ -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
             });