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

fixing project homepage

parent c95f5f86
const fs = require('fs')
const SamlStrategy = require('passport-saml').Strategy
const dbconn = require('./dbconn')
const methods = require('./methods')
// pwd encryption
//const bcrypt = require('bcryptjs');
//const saltRounds = 10;
//const salt = 64; // salt length
// forgot pwd
const async = require('async')
const helpers = require('./helpers')
//const crypto = require('crypto')
//const mailer = require('./mailer')
const helpers = require('./helpers')
const pictSizeLimit = 1000000 // 1 MB
module.exports = function (app, config, passport) {
var lang = 'DE'
// =========== PASSPORT =======
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
done(null, user);
});
var samlStrategy = new SamlStrategy({
// URL that goes from the Identity Provider -> Service Provider
callbackUrl: config.passport.saml.path,
// Base address to call logout requests
logoutUrl: config.passport.saml.logoutUrl,
entryPoint: config.passport.saml.entryPoint,
issuer: config.passport.saml.issuer,
identifierFormat: null,
// Service Provider private key
decryptionPvk: fs.readFileSync('./config/cert/key.pem', 'utf8'),
// Service Provider Certificate
privateCert: fs.readFileSync('./config/cert/key.pem', 'utf8'),
// Identity Provider's public key
cert: fs.readFileSync('./config/cert/cert_idp.pem', 'utf8'),
validateInResponseTo: false,
disableRequestedAuthnContext: true
},
function (profile, done) {
return done(null, {
id: profile.nameID,
idFormat: profile.nameIDFormat,
email: profile.email,
firstName: profile.givenName,
lastName: profile.sn
})
})
passport.use(samlStrategy);
// ============= SAML ==============
app.post(config.passport.saml.path,
passport.authenticate(config.passport.strategy,
{
failureRedirect: '/',
failureFlash: true
}),
function (req, res) {
res.redirect('/');
}
)
// to generate Service Provider's XML metadata
app.get('/saml/metadata',
function(req, res) {
res.type('application/xml');
var spMetadata = samlStrategy.generateServiceProviderMetadata(
fs.readFileSync('./config/cert/cert.pem', 'utf8')
);
res.status(200).send(spMetadata);
}
);
// =========== LOGIN LOGOUT ================
app.get('/login', passport.authenticate(config.passport.strategy,
{
successRedirect: '/',
failureRedirect: '/login'
})
);
app.get('/logout', function (req, res) {
if (req.user == null) {
return res.redirect('/');
}
req.user.nameID = req.user.id;
req.user.nameIDFormat = req.user.idFormat;
return samlStrategy.logout(req, function(err, uri) {
req.logout();
if ( req.session ) {
req.session.destroy((err) => {
if(err) {
return console.log(err);
}
});
}
return res.redirect(uri);
});
});
module.exports = function (app) {
// ======== APP ROUTES ====================
app.get('/', function(req, res){
res.redirect('/project');
})
// ======== APP ROUTES - PROJECT ====================
var lang = 'DE'
app.get('/mailinglists', function (req, res) {
async.waterfall([
......@@ -128,7 +38,8 @@ module.exports = function (app, config, passport) {
name: mailinglistOverview[i].name,
src: mailinglistOverview[i].src,
projectstatus: mailinglistOverview[i].projectstatus,
project_title: mailinglistOverview[i].project_title
project_title: mailinglistOverview[i].project_title,
keywords: mailinglistOverview[i].keywords
});
}
......@@ -139,9 +50,9 @@ module.exports = function (app, config, passport) {
});
}
])
});
})
app.get('/project', function (req, res) {
app.get('/project_', function (req, res) {
async.waterfall([
// get all projects from projectdb
function(done) {
......@@ -194,7 +105,7 @@ module.exports = function (app, config, passport) {
])
})
app.get('/project_', function (req, res) {
app.get('/', function (req, res) {
res.render(lang+'/project/project-simplified', {
isUserAuthenticated: req.isAuthenticated(),
user: req.user
......@@ -349,7 +260,7 @@ module.exports = function (app, config, passport) {
async.waterfall([
// get userId by email from userdb
function(done) {
methods.getUserIdByEmail(req.user.email, function(id, err) { // TO BE FIXED
methods.getUserIdByEmail(req.user.email, function(id, err) {
if (!err) {
userId = id
done(err)
......@@ -445,4 +356,17 @@ module.exports = function (app, config, passport) {
])
})
app.get('/videoconferences', function(req, res){
res.render(lang+'/project/videoconferences', {
isUserAuthenticated: req.isAuthenticated(),
user: req.user,
});
})
app.get('/landingpage', function(req, res){
res.render(lang+'/project/landingpage', {
isUserAuthenticated: req.isAuthenticated(),
user: req.user
});
})
};
\ No newline at end of file
......@@ -4,7 +4,9 @@ html(lang="de")
title= "Project List"
meta(charset="UTF-8")
meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no")
link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css")
link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.min.css")
link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/m4lab.css")
link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
style.
.help .card-title > a:before {
......@@ -17,7 +19,7 @@ html(lang="de")
content: "+";
}
.help h3 > a {
color: #8a348b;
color: #708090;
text-decoration: none;
display: block;
}
......@@ -32,7 +34,10 @@ html(lang="de")
margin-top: 0.5rem;
}
#infoicon {
color: #8a348b;
color: #708090;
}
.heading {
color: #708090;
}
body
include project.html
......@@ -45,7 +50,4 @@ html(lang="de")
// Bootstrap
script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous")
// Header
if isUserAuthenticated
script(src="/js/headfootLogout.js")
else
script(src="/js/headfoot.js")
\ No newline at end of file
script(src="https://transfer.hft-stuttgart.de/js/headfoot.js")
\ No newline at end of file
<div class="container">
<hr />
<!-- text: Zweck dieser Seite / purpose of this page -->
<div>
<i id="infoicon" class="fas fa-info-circle fa-lg"></i>
Diese Seite bietet den Einstieg zu den unterschiedlichen Projekten, die in
unserem Portal für die Öffentlichkeit bereitgestellt werden.
Für diesen Zweck steht zur Zeit ein Dienst bereit: eine von der HFT selbst verwaltete Gitlab-Instanz.
Alle der in diesem Gitlab erfassten Projektinhalte unterliegen einer Open Source bzw. Open Data Lizenz.
<p class="font-italic"><b>Hinweis: </b>Die Nutzeroberfläche von GitLab ist in Englisch.</p>
<div>
<div class="container">
<div class="row">
<div class="col-md-12" style="margin-bottom: 40px;"><img class="mx-auto" src="https://transfer.hft-stuttgart.de/img/Projekte.png"
width="100%"></div>
</div>
</div>
</div>
<div>
<div class="container">
<div class="row">
<div class="col-md-12" style="margin-bottom: 30px;">
<h4 class="text-center">Diese Seite bietet den Einstieg zu den Inhalten der unterschiedlichen Projekte,
die über das Portal zur Verfügung gestellt werden.</h4>
</div>
</div>
</div>
</div>
<div>
<div class="container">
<div class="row">
<div class="col-lg-1"></div>
<div class="col-md-6 col-lg-4" style="padding-right: 5px;padding-left: 5px;">
<img class="d-flex d-lg-flex justify-content-center align-items-center align-content-center align-self-center mx-auto"
src="https://transfer.hft-stuttgart.de/img/Icon_Haken.png" height="150" />
<br />
<h2 class="text-center heading"><small><strong>Open-Source-/ Open-Data-Projekte</strong></small><br></h2>
<p class="text-left">Für die Veröffentlichung von Open-Source-Projekten steht Ihnen eine von der HFT
Stuttgart selbstverwaltete Gitlab-Instanz bereit.
<br /> <br />
Eine Übersicht der aktuellen Open-Source-/Open-Data-Projekte erreichen Sie über diesen <a
href="https://transfer.hft-stuttgart.de/gitlab/explore/projects">
<i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>.<br />
</p>
</div>
<div class="col-lg-2"></div>
<div class="col-md-6 col-lg-4" style="padding-right: 5px;padding-left: 5px;">
<img src="https://transfer.hft-stuttgart.de/img/Icon_Sandclock.png"
class="d-flex d-lg-flex justify-content-center align-items-center align-content-center align-self-center mx-auto"
height="150px" />
<br />
<h2 class="text-center heading"><small><strong>Andere Projekte</strong></small><br></h2>
<p class="text-left">Aktuell unterstützt das Transferportal Projekte, die einer Open-Source bzw.
Open-Data-Lizenz
unterliegen. Die Gründe hierfür liegen in den Lizenzbedingungen unserer Gitlab-Instanz als
Plattform.
<br /> <br />
Künftig möchten wir auch andere Projekttypen unterstützen. Es soll dann beispielsweise möglich sein,
Projektergebnisse zu veröffentlichen ohne die dazugehörigen Quellcodes oder Rohdaten offenzulegen.
<br /> <br />
Wir entwickeln das Portal kontinuierlich weiter und prüfen dabei auch andere Plattformen zur
Nutzung.
</p>
</div>
<div class="col-lg-1"></div>
</div>
<hr />
<!-- text: Zweck dieser Seite / purpose of this page -->
<div>
<p class="text-justify"><i id="infoicon" class="fas fa-info-circle fa-lg"></i> Falls Sie mehr über die
Weiterentwicklung des Portals
erfahren wollen oder sich mit Anregungen auch aktiv einbringen
wollen, regen wir an, unsere Mailingliste <a href="https://www.listserv.dfn.de/sympa/info/transferportalhft">
<i class="fas fa-chevron-right">transferportalhft</i></a> zu abonnieren. Sie können uns aber auch
jederzeit
direkt unter <a href="/account/contact"><i class="fas fa-chevron-right">Kontakt</i></a> anschreiben.
</p>
</div>
</div>
</div>
<!-- link: Gitlab Projekte / Gitlab project list -->
<h2><small> Direkteinstieg </small></h2>
<a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"> <i class="fas fa-chevron-right">Gitlab
Projects</i></a>
<div class="container">
<!-- text: Hilfestellung zu Gitlab / short help about Gitlab -->
<hr />
<h2><small>Hilfestellung zu GitLab</small></h2>
<h2 class="text-center heading"><small><strong>Hilfestellung zu GitLab</strong></small></h2>
<br />
<div class="help">
<div class="card">
<div class="card-header">
<h3 class="card-title">
<a class="collapsed" data-toggle="collapse" href="#collapse1" aria-expanded="false" aria-controls="collapse1">
<a class="collapsed" data-toggle="collapse" href="#collapse1" aria-expanded="false"
aria-controls="collapse1">
<small>Möchten Sie die Projektinhalte ansehen oder herunterladen?</small></a>
</h3>
</div>
<div id="collapse1" class="card-body collapse">
<p>
Dann klicken Sie auf diesen
<a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"><i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>
um die Liste aller im Gitlab erfassten Projekte zu sehen. Vor dort können Sie dann auf die einzelnen Projekte zugreifen.
<a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"><i
class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>
um die Liste aller im Gitlab erfassten Projekte zu sehen. Vor dort können Sie dann auf die einzelnen
Projekte zugreifen.
Ein Anmelden am Portal ist dazu nicht nötig.
</p>
</div>
</div>
<br />
<div class="card">
<div class="card-header">
<h3 class="card-title">
<a class="collapsed" data-toggle="collapse" href="#collapse2" aria-expanded="false" aria-controls="collapse2">
<small>Möchten Sie zu einem Projekt beitragen?</small></a>
<a class="collapsed" data-toggle="collapse" href="#collapse2" aria-expanded="false"
aria-controls="collapse2">
<small>Möchten Sie zu einem Projekt beitragen?</small></a>
</h3>
</div>
<div id="collapse2" class="card-body collapse">
<p>
Sie können mittels Issues dem Projekteigentümer eine Rückmeldung geben bzw. einen Fehler melden. Darüberhinaus können Sie sich auch aktiv beteiligen. Dazu müssen Sie im Portal als Nutzer registriert sein.
Sie können mittels Issues dem Projekteigentümer eine Rückmeldung geben bzw. einen Fehler melden.
Darüberhinaus können Sie sich auch aktiv beteiligen. Dazu müssen Sie im Portal als Nutzer
registriert sein.
</p>
<p>
Wenn Sie noch kein Benutzerkonto haben, klicken Sie bitte oben auf den Link Benutzerkonto und folgen Sie dem System durch die Registrierungsprozedur.
Wenn Sie noch kein Benutzerkonto haben, klicken Sie bitte oben auf den Link Benutzerkonto und folgen
Sie dem System durch die Registrierungsprozedur.
</p>
<p>
Haben Sie ein Benutzerkonto, befolgen Sie bitte folgende Schritte:
</p>
<ol>
<li>
Folgen Sie dem <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects">
<i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>, um zum Gitlab zu gelangen.
Folgen Sie dem <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects">
<i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>, um zum Gitlab zu
gelangen.
</li>
<li>
Melden Sie sich bei Gitlab an, indem Sie im Gitlab auf den Link Sign-In klicken.
</li>
<li>
Sie werden dann auf eine Anmeldeseite von unserem Portal geführt. Geben Sie dort bitte ihre Benutzerdaten vom Portal ein.
Sie werden dann auf eine Anmeldeseite von unserem Portal geführt. Geben Sie dort bitte ihre
Benutzerdaten vom Portal ein.
</li>
<li>
Nach erfolgreichem Anmelden werden Sie zum Gitlab zurückgeführt.
......@@ -78,7 +146,10 @@
Navigieren Sie dann zum Projekt Ihrer Wahl.
</li>
<li>
Abhängig davon wie der Projekteigentümer das Projekt konfiguriert hat, können Sie entweder direkt loslegen, oder Sie müssen zunächst noch beim Projekteigentümer Zugang zum Projekt anfragen, indem Sie im Gitlab bei der entsprechende Projektseite auf den Link Request Access klicken.
Abhängig davon wie der Projekteigentümer das Projekt konfiguriert hat, können Sie entweder
direkt loslegen, oder Sie müssen zunächst noch beim Projekteigentümer Zugang zum Projekt
anfragen, indem Sie im Gitlab bei der entsprechende Projektseite auf den Link Request Access
klicken.
</li>
</ol>
</div>
......@@ -89,40 +160,56 @@
<div class="card">
<div class="card-header">
<h3 class="card-title">
<a class="collapsed" data-toggle="collapse" href="#collapse3" aria-expanded="false" aria-controls="collapse3">
<small>Möchten Sie selbst ein Projekt anlegen, um es der Öffentlichkeit bereitzustellen?</small></a>
<a class="collapsed" data-toggle="collapse" href="#collapse3" aria-expanded="false"
aria-controls="collapse3">
<small>Möchten Sie selbst ein Projekt anlegen, um es der Öffentlichkeit
bereitzustellen?</small></a>
</h3>
</div>
<div id="collapse3" class="card-body collapse">
<p>
Vorraussetzung dazu ist, dass Sie aktives oder ehemaliges Mitglied der Hochschule für Technik sind, d.h. eine (noch) gültige HFT-Emailadresse haben, und zudem im Portal als Nutzer registriert sein.
Vorraussetzung dazu ist, dass Sie aktives oder ehemaliges Mitglied der Hochschule für Technik sind,
d.h. eine (noch) gültige HFT-Emailadresse haben, und zudem im Portal als Nutzer registriert sein.
</p>
<p>
Wenn Sie noch kein Benutzerkonto haben, klicken Sie bitte oben auf den Link Benutzerkonto und folgen Sie dem System durch die Registrierungsprozedur.
Wenn Sie noch kein Benutzerkonto haben, klicken Sie bitte oben auf den Link Benutzerkonto und folgen
Sie dem System durch die Registrierungsprozedur.
</p>
<p>
Haben Sie ein Benutzerkonto, befolgen Sie bitte folgende Schritte:
</p>
<ol>
<li>
Folgen Sie dem <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects">
<i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>, um zum Gitlab zu gelangen.
Folgen Sie dem <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects">
<i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>, um zum Gitlab zu
gelangen.
</li>
<li>
Melden Sie sich bei Gitlab an, indem Sie im Gitlab auf den Link Sign-In klicken.
</li>
<li>
Sie werden dann auf eine Anmeldeseite von unserem Portal geführt. Geben Sie dort bitte ihre Benutzerdaten vom Portal ein.
Sie werden dann auf eine Anmeldeseite von unserem Portal geführt. Geben Sie dort bitte ihre
Benutzerdaten vom Portal ein.
</li>
<li>
Nach erfolgreichem Anmelden werden Sie zum Gitlab zurückgeführt.
</li>
<li>
Erstellen Sie dann in Gitlab ein neues Projekt durch Klicken auf den grünen New Project-Knopf und anschließendem Befolgen der Eingabemaske von Gitlab.
Erstellen Sie dann in Gitlab ein neues Projekt durch Klicken auf den grünen New Project-Knopf
und anschließendem Befolgen der Eingabemaske von Gitlab.
</li>
</ol>
<p>
Weitere Hilfestellung zum Anlegen von Projekten in Gitlab finden Sie in der Gitlab-Dokumentation.
Weitere Hilfestellung zum Anlegen von Projekten in Gitlab finden Sie in der <a
href="https://docs.gitlab.com/ee/gitlab-basics/create-project.html"
target="_blank">Gitlab-Dokumentation</a>.
</p>
<p>
Hinweis: Um Inhalte zum Gitlab "pushen" zu können, verwendet die Gitlab-Instanz unseres Portals die
s.g. "SSH Keys".
Weitere Informationen dazu finden Sie in der <a
href="https://transfer.hft-stuttgart.de/gitlab/help/ssh/README" target="_blank">
<i class="fas fa-chevron-right">Gitlab-Dokumentation zu SSH Keys</i></a>.
</p>
</div>
</div>
......
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