Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
0a15cd5
feat: add json schemas for DB
nicodr97 Jan 30, 2025
455e0f7
Merge remote-tracking branch 'origin/master' into feature/add-json-sc…
nicodr97 Mar 18, 2025
2c812f8
chore: keep same dir structure for sample data
nicodr97 Mar 18, 2025
a25ad3c
fix: warning on deprecated
nicodr97 Mar 18, 2025
8bd2f7f
chore: delete countries collection
nicodr97 Mar 18, 2025
9148ef0
chore: delete crypPassword user attribute
nicodr97 Mar 18, 2025
0dbb052
chore: remove unused function
nicodr97 Mar 18, 2025
9e9fdaf
chore: remove unused code
nicodr97 Mar 18, 2025
b11b119
chore: ignore token on mongo db
nicodr97 Mar 18, 2025
8b6f9de
chore: ignore token info on mongo db
nicodr97 Mar 18, 2025
8a78531
chore: ignore Vault and mug token attributes in mongo db
nicodr97 Mar 18, 2025
4e5732e
refactor: use enum for user type
nicodr97 Mar 18, 2025
dab2406
chore: remove unused function
nicodr97 Mar 19, 2025
33b4850
refactor: use enum for use status
nicodr97 Mar 19, 2025
a55699a
chore: remove unused attribute "DataSample"
nicodr97 Mar 19, 2025
8b5cb28
refactor: reorder function parameters
nicodr97 Mar 19, 2025
31ba6e6
fix: import classes and functions before starting session
nicodr97 Mar 19, 2025
d99bb91
fix: user creation and update
nicodr97 Mar 20, 2025
005fb25
chore: remove debugs
nicodr97 Mar 20, 2025
b5c8202
refactor: User class
nicodr97 Mar 20, 2025
2ac307f
chore: remove debug
nicodr97 Mar 21, 2025
5e6be65
refactor: rename sample data variables
nicodr97 Mar 21, 2025
ecc7811
refactor: use session to save Vault user info
nicodr97 Mar 21, 2025
82aff14
refactor: add getters and setters for User class
nicodr97 Mar 21, 2025
a666e1a
chore: autoformat
nicodr97 Mar 21, 2025
7809094
refactor: admin users
nicodr97 Mar 24, 2025
fe36af0
chore: autoformat
nicodr97 Mar 24, 2025
9557756
refactor: use array to avoid mongodb Cursor exception
nicodr97 Mar 24, 2025
ede32a7
refactor: dashboard
nicodr97 Mar 24, 2025
1b8eb54
refactor: centralize user queries to database
nicodr97 Mar 24, 2025
2f77e53
refactor: remove old eush project files
nicodr97 Apr 29, 2025
b0f6edc
chore: clean useless lines
nicodr97 Apr 29, 2025
637f076
refactor: class attributes
nicodr97 Apr 29, 2025
4c900f4
chore: autoformat
nicodr97 Apr 29, 2025
6f21184
refactor: also remove some old code
nicodr97 Apr 29, 2025
8efe796
chore: autoformat
nicodr97 Apr 29, 2025
a013033
chore: remove useless code
nicodr97 Apr 29, 2025
82ad040
chore: avoid warnings
nicodr97 Apr 29, 2025
4ce1176
chore: autoformat
nicodr97 Apr 29, 2025
6ba21f2
chore: remove EGA form defaults
nicodr97 Apr 30, 2025
8554ce8
chore: remove old comments and code
nicodr97 May 22, 2025
2d3350f
feat: check EGA credentials and some refactor
nicodr97 May 22, 2025
2f2056f
feat: add private key field to ega form
nicodr97 May 22, 2025
5e8f53f
chore: remove old key pair
nicodr97 May 23, 2025
86c4d07
Merge remote-tracking branch 'origin/feature/add-json-schemas' into f…
nicodr97 May 26, 2025
1faac6d
chore: remove log
nicodr97 May 26, 2025
ff5183e
chore: remove comments
nicodr97 May 26, 2025
1370852
chore: remove comment
nicodr97 May 26, 2025
d752b9e
chore: update error message
nicodr97 May 26, 2025
54470ce
chore: remove old comment
nicodr97 May 26, 2025
664cd9f
fix: redirect to form on credentials clean
nicodr97 Jun 12, 2025
9c8988b
refactor: always show empty EGA form at each access
nicodr97 Jun 12, 2025
d71ebe1
chore: remove log including credentials
nicodr97 Jun 12, 2025
011e2c6
fix: check username and password are provided for EGA account
nicodr97 Jun 25, 2025
275737f
chore: add missing TODO to comment
nicodr97 Jun 25, 2025
cc7c894
fix: do not display useless button
nicodr97 Jun 25, 2025
467af70
chore: update error message on unknown action
nicodr97 Jun 25, 2025
e88ee89
refactor: desearilze BSON on query
nicodr97 Jun 25, 2025
8b1d69d
Merge pull request #10 from inab/feature/ega-auth
nicodr97 Jul 1, 2025
d3530b8
Merge branch 'master' into feature/add-json-schemas
nicodr97 Jul 30, 2025
637ff61
fix: EGA linked account update and vault connection
nicodr97 Jul 31, 2025
6f7ce91
Merge branch 'master' into feature/add-json-schemas
nicodr97 Jul 31, 2025
ce004e7
feat: add some logs on EGA linked account
nicodr97 Jul 31, 2025
6ce9267
chore: remove json schemas
nicodr97 Jul 31, 2025
57ada99
chore: remove commented echo
nicodr97 Jul 31, 2025
d6a993c
refactor: change variable name
nicodr97 Jul 31, 2025
e644220
chore: remove typemap attribute from mongo queries, already default
nicodr97 Aug 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions front_end/openVRE/config/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
// import vendor libs
require dirname(__FILE__)."/../vendor/autoload.php";

// initialize session
require dirname(__FILE__)."/../public/phplib/session.inc";

// import local classes
foreach(glob(dirname(__FILE__)."/../public/phplib/classes/*.php") as $lib){
require $lib;
Expand All @@ -18,4 +15,7 @@
require $lib;
}

// initialize session
require dirname(__FILE__)."/../public/phplib/session.inc";
Comment thread
Cazaril marked this conversation as resolved.

?>
8 changes: 6 additions & 2 deletions front_end/openVRE/config/globals.inc.php.sample
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ $GLOBALS['shared'] = "/shared_data/"; // VRE data directory
$GLOBALS['logFile'] = $GLOBALS['root']."/logs/application.log"; // Log file path
$GLOBALS['dataDir'] = $GLOBALS['shared']."userdata/"; // User data directory
$GLOBALS['pubDir'] = $GLOBALS['shared']."public/"; // Public data directory
$GLOBALS['sampleData'] = "/var/www/html/openVRE/data";
$GLOBALS['sampleDataPath'] = "/var/www/html/openVRE/data/sampleData/"; // Sample data directory
$GLOBALS['sampleData_default'] = "basic"; // Default workspace's dataset entry

// File manager config
Expand Down Expand Up @@ -78,12 +78,16 @@ $GLOBALS['adminToken'] = $GLOBALS['authServer']."/realms/master/prot
$GLOBALS['adminRealm'] = $GLOBALS['authServer']."/admin/realms/".$GLOBALS['authRealm']; // admin keycloak users

// Vault integration and roles
$GLOBALS['vaultUrl'] = 'https://localhost:8200';
$GLOBALS['vaultUrl'] = 'http://localhost:8200';
$GLOBALS['vaultToken'] = 'root';
//$jwtToken = $_SESSION['User']['JWT'];
$GLOBALS['vaultRolename'] = 'demo';
$GLOBALS['secretPath'] = 'secret/mysecret/data/';

// EGA
$GLOBALS['EGA_METADATA_TOKEN_ENDPOINT'] = 'https://idp.ega-archive.org/realms/EGA/protocol/openid-connect/token';
$GLOBALS['EGA_METADATA_API'] = 'https://metadata.ega-archive.org';

// Google Analytics
#$GLOBALS['GA_TAG']; // if used, set the id for: https://www.googletagmanager.com/gtag/js?id=

Expand Down
364 changes: 183 additions & 181 deletions front_end/openVRE/public/admin/adminTools.php

Large diffs are not rendered by default.

570 changes: 280 additions & 290 deletions front_end/openVRE/public/admin/adminUsers.php

Large diffs are not rendered by default.

608 changes: 307 additions & 301 deletions front_end/openVRE/public/admin/createTest.php

Large diffs are not rendered by default.

662 changes: 308 additions & 354 deletions front_end/openVRE/public/admin/dashboard.php

Large diffs are not rendered by default.

412 changes: 196 additions & 216 deletions front_end/openVRE/public/admin/editUser.php

Large diffs are not rendered by default.

245 changes: 122 additions & 123 deletions front_end/openVRE/public/admin/jsonSpecValidator.php
Original file line number Diff line number Diff line change
@@ -1,147 +1,146 @@
<?php

require __DIR__."/../../config/bootstrap.php";
require __DIR__ . "/../../config/bootstrap.php";

redirectToolDevOutside();

if(!isset($_REQUEST['id'])) {
if (!isset($_REQUEST['id'])) {

$_SESSION['errorData']['Error'][] = "Please provide a tool id.";
redirect($GLOBALS['BASEURL'].'admin/myNewTools.php');

redirect($GLOBALS['BASEURL'] . 'admin/myNewTools.php');
}

$toolDevJSON = $GLOBALS['toolsDevMetaCol']->findOne(array('_id' => $_REQUEST['id']));

if(!isset($toolDevJSON)) {
$_SESSION['errorData']['Error'][] = "The tool id <strong>".$_REQUEST['toolid']."</strong> doesn't exist in our database.";
redirect($GLOBALS['BASEURL'].'admin/myNewTools.php');
if (!isset($toolDevJSON)) {
$_SESSION['errorData']['Error'][] = "The tool id <strong>" . $_REQUEST['toolid'] . "</strong> doesn't exist in our database.";
redirect($GLOBALS['BASEURL'] . 'admin/myNewTools.php');
}

$toolDevMetaJSON = $GLOBALS['toolsDevMetaCol']->findOne(array('_id' => $_REQUEST['id'], 'user_id' => $_SESSION['User']['id']));

if(!isset($toolDevMetaJSON) && ($_SESSION['User']['Type'] != 0)) {
$_SESSION['errorData']['Error'][] = "The tool id <strong>".$_REQUEST['toolid']."</strong> you are trying to edit doesn't belong to you.";
redirect($GLOBALS['BASEURL'].'admin/myNewTools.php');
if (!isset($toolDevMetaJSON) && ($_SESSION['User']['Type'] != UserType::Admin->value)) {
$_SESSION['errorData']['Error'][] = "The tool id <strong>" . $_REQUEST['toolid'] . "</strong> you are trying to edit doesn't belong to you.";
redirect($GLOBALS['BASEURL'] . 'admin/myNewTools.php');
}

?>

<?php require "../htmlib/header.inc.php"; ?>

<body class="page-header-fixed page-sidebar-closed-hide-logo page-content-white page-container-bg-solid page-sidebar-fixed">
<div class="page-wrapper">

<?php require "../htmlib/top.inc.php"; ?>
<?php require "../htmlib/menu.inc.php"; ?>


<!-- BEGIN CONTENT -->
<div class="page-content-wrapper">
<!-- BEGIN CONTENT BODY -->
<div class="page-content">
<!-- BEGIN PAGE HEADER-->
<!-- BEGIN PAGE BAR -->
<div class="page-bar">
<ul class="page-breadcrumb">
<li>
<span>Admin</span>
<i class="fa fa-circle"></i>
</li>
<li>
<a href="admin/myNewTools.php">My new tools</a>
<i class="fa fa-circle"></i>
</li>
<li>
<span>Tool specification</span>
</li>
</ul>
</div>
<!-- END PAGE BAR -->
<!-- BEGIN PAGE TITLE-->
<h1 class="page-title"> Tool specification
</h1>
<!-- END PAGE TITLE-->
<!-- END PAGE HEADER-->

<div class="row">
<div class="col-md-12">
<?php
$error_data = false;
if ($_SESSION['errorData']){
$error_data = true;
?>
<?php if ($_SESSION['errorData']['Info']) { ?>
<div class="alert alert-info">
<?php } else { ?>
<div class="alert alert-danger">
<?php } ?>

<?php
foreach($_SESSION['errorData'] as $subTitle=>$txts){
print "<strong>$subTitle</strong><br/>";
foreach($txts as $txt){
print "<div>$txt</div>";
}
}
unset($_SESSION['errorData']);
?>
</div>
<?php } ?>
</div>
</div>

<form name="new-tool" id="new-tool" action="applib/updateToolDevSpec.php" method="post" >

<div class="row">
<div class="col-md-12">
<p style="margin-top:0;">Paste or write your JSON code in the text area below. Once the JSON is correct,
you can validate it against our <a href="https://raw.githubusercontent.com/Multiscale-Genomics/VRE_tool_jsons/dev/tool_specification/tool_schema.json" target="_blank">JSON Schema</a>. Click the buttons below for further information:</p>
<p>
<a class="btn btn-xs green" href="http://multiscalegenomics.eu/MuGVRE/tool-specification-attributes/" target="_blank"><i class="fa fa-tag" aria-hidden="true"></i> Attribute's help</a>
<a class="btn btn-xs green" href="http://multiscalegenomics.eu/MuGVRE/file-types/" target="_blank"><i class="fa fa-list" aria-hidden="true"></i> Available File Types</a>
<a class="btn btn-xs green" href="http://multiscalegenomics.eu/MuGVRE/data-types/" target="_blank"><i class="fa fa-list" aria-hidden="true"></i> Available Data Type</a>
<a class="btn btn-xs green" href="javascript:;" target="_blank"><i class="fa fa-list" aria-hidden="true"></i> List of keywords</a>
</p>
<!-- BEGIN EXAMPLE TABLE PORTLET-->
<div class="portlet light portlet-fit bordered">
<div class="portlet-body form" id="portlet-json">
<input type="hidden" name="toolid" value="<?php echo $_REQUEST['id']; ?>" />
<textarea id="code_editor" name="json_tool" placeholder="Please, paste or write your JSON code here..."><?php echo json_encode($toolDevJSON["step3"]["tool_spec"], JSON_PRETTY_PRINT); ?></textarea>
<div class="page-wrapper">

<?php require "../htmlib/top.inc.php"; ?>
<?php require "../htmlib/menu.inc.php"; ?>


<!-- BEGIN CONTENT -->
<div class="page-content-wrapper">
<!-- BEGIN CONTENT BODY -->
<div class="page-content">
<!-- BEGIN PAGE HEADER-->
<!-- BEGIN PAGE BAR -->
<div class="page-bar">
<ul class="page-breadcrumb">
<li>
<span>Admin</span>
<i class="fa fa-circle"></i>
</li>
<li>
<a href="admin/myNewTools.php">My new tools</a>
<i class="fa fa-circle"></i>
</li>
<li>
<span>Tool specification</span>
</li>
</ul>
</div>
<!-- END PAGE BAR -->
<!-- BEGIN PAGE TITLE-->
<h1 class="page-title"> Tool specification
</h1>
<!-- END PAGE TITLE-->
<!-- END PAGE HEADER-->

<div class="row">
<div class="col-md-12">
<?php
$error_data = false;
if ($_SESSION['errorData']) {
$error_data = true;
?>
<?php if ($_SESSION['errorData']['Info']) { ?>
<div class="alert alert-info">
<?php } else { ?>
<div class="alert alert-danger">
<?php } ?>

<?php
foreach ($_SESSION['errorData'] as $subTitle => $txts) {
print "<strong>$subTitle</strong><br/>";
foreach ($txts as $txt) {
print "<div>$txt</div>";
}
}
unset($_SESSION['errorData']);
?>
</div>
<?php } ?>
</div>
</div>

<form name="new-tool" id="new-tool" action="applib/updateToolDevSpec.php" method="post">

<div class="row">
<div class="col-md-12">
<p style="margin-top:0;">Paste or write your JSON code in the text area below. Once the JSON is correct,
you can validate it against our <a href="https://raw.githubusercontent.com/Multiscale-Genomics/VRE_tool_jsons/dev/tool_specification/tool_schema.json" target="_blank">JSON Schema</a>. Click the buttons below for further information:</p>
<p>
<a class="btn btn-xs green" href="http://multiscalegenomics.eu/MuGVRE/tool-specification-attributes/" target="_blank"><i class="fa fa-tag" aria-hidden="true"></i> Attribute's help</a>
<a class="btn btn-xs green" href="http://multiscalegenomics.eu/MuGVRE/file-types/" target="_blank"><i class="fa fa-list" aria-hidden="true"></i> Available File Types</a>
<a class="btn btn-xs green" href="http://multiscalegenomics.eu/MuGVRE/data-types/" target="_blank"><i class="fa fa-list" aria-hidden="true"></i> Available Data Type</a>
<a class="btn btn-xs green" href="javascript:;" target="_blank"><i class="fa fa-list" aria-hidden="true"></i> List of keywords</a>
</p>
<!-- BEGIN EXAMPLE TABLE PORTLET-->
<div class="portlet light portlet-fit bordered">
<div class="portlet-body form" id="portlet-json">
<input type="hidden" name="toolid" value="<?php echo $_REQUEST['id']; ?>" />
<textarea id="code_editor" name="json_tool" placeholder="Please, paste or write your JSON code here..."><?php echo json_encode($toolDevJSON["step3"]["tool_spec"], JSON_PRETTY_PRINT); ?></textarea>
</div>
</div>
<!-- END EXAMPLE TABLE PORTLET-->
<input type="hidden" id="base-url" value="<?php echo $GLOBALS['BASEURL']; ?>" />
<div class="form-actions">
<a href="admin/myNewTools.php" class="btn btn-default">BACK</a>
<input type="submit" class="btn green " id="json-val-subm" value="SUBMIT" style="float:right;">
<input type="button" class="btn green snd-metadata-btn" id="json-val-but" value="VALIDATE JSON" style="float:right;margin-right:5px;">
</div>
</div>
</div>
</form>
<!-- END CONTENT BODY -->
</div>
<!-- END CONTENT -->

<div class="modal fade bs-modal" id="modalJSONSchema" tabindex="-1" role="basic" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">JSON Schema Validation</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn dark btn-outline" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<!-- END EXAMPLE TABLE PORTLET-->
<input type="hidden" id="base-url" value="<?php echo $GLOBALS['BASEURL']; ?>" />
<div class="form-actions">
<a href="admin/myNewTools.php" class="btn btn-default">BACK</a>
<input type="submit" class="btn green " id="json-val-subm" value="SUBMIT" style="float:right;">
<input type="button" class="btn green snd-metadata-btn" id="json-val-but" value="VALIDATE JSON" style="float:right;margin-right:5px;">
</div>
</div>
</div>
</form>
<!-- END CONTENT BODY -->
</div>
<!-- END CONTENT -->

<div class="modal fade bs-modal" id="modalJSONSchema" tabindex="-1" role="basic" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">JSON Schema Validation</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn dark btn-outline" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>

<?php

require "../htmlib/footer.inc.php";
require "../htmlib/js.inc.php";

?>
<?php

require "../htmlib/footer.inc.php";
require "../htmlib/js.inc.php";

?>
Loading