mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 13:24:24 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bf24533cdd | |||
| 0d8f3d3e0a | |||
| f6e4d3f8e3 | |||
|
|
acae6ba9c0 | ||
|
|
1aafb0550a | ||
|
|
811ab2727b | ||
|
|
7d61d084f1 | ||
|
|
160eaaa0ce | ||
|
|
5ee5c3695d | ||
|
|
77de93f9c3 | ||
|
|
cc4efce26d | ||
|
|
5fef565e4b | ||
|
|
d683f4a520 | ||
|
|
7ce024a768 | ||
| 0d8915930c | |||
| d9ca5bd7fc |
11
.github/dependabot.yml
vendored
Normal file
11
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# To get started with Dependabot version updates, you'll need to specify which
|
||||||
|
# package ecosystems to update and where the package manifests are located.
|
||||||
|
# Please see the documentation for all configuration options:
|
||||||
|
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "npm" # See documentation for possible values
|
||||||
|
directory: "/" # Location of package manifests
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
@@ -60,6 +60,6 @@ If you like this project and it helped you save money, please consider donating
|
|||||||
|
|
||||||
You may notice some additional folders appearing after running
|
You may notice some additional folders appearing after running
|
||||||
```
|
```
|
||||||
npm run package
|
./package.sh
|
||||||
```
|
```
|
||||||
This is to shrink the repository size. Distribution ready files can be found in the releases or on our [website](https://libreevent.janishutz.com/download).
|
This is to shrink the repository size. Distribution ready files can be found in the releases or on our [website](https://libreevent.janishutz.com/download).
|
||||||
|
|||||||
13
SECURITY.md
Normal file
13
SECURITY.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
libreevent gets security updates as part of regular software updates. Since there is only one major version currently, only this one gets updates
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 1.0.x | :white_check_mark: |
|
||||||
|
| 0.x.x | :x: |
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
Please open an issue if you have discovered a security problem or send a mail to [development@janishutz.com](mailto:development@janishutz.com)
|
||||||
10
notes.md
10
notes.md
@@ -3,17 +3,17 @@ For deployment create the following items:
|
|||||||
- libreevent-[VERSION HERE]-npm.zip (contains the node_modules folder from src/server)
|
- libreevent-[VERSION HERE]-npm.zip (contains the node_modules folder from src/server)
|
||||||
- libreevent-[VERSION HERE]-prebuilt.zip (contains a ready-to-use compiled version of libreevent (main download))
|
- libreevent-[VERSION HERE]-prebuilt.zip (contains a ready-to-use compiled version of libreevent (main download))
|
||||||
- libreevent-[VERSION HERE]-full-icu.zip (contains the package.json file which can be used if full-icu is not enabled in Node.js)
|
- libreevent-[VERSION HERE]-full-icu.zip (contains the package.json file which can be used if full-icu is not enabled in Node.js)
|
||||||
|
-> This can be achieved by running the bash script `package.sh` in the root folder of the project
|
||||||
|
|
||||||
|
|
||||||
|
# Links to apps
|
||||||
|
- https://play.google.com/store/apps/details?id=com.janishutz.libreevent
|
||||||
|
- https://apps.apple.com/ch/app/libreevent-entry-control/id6464594870?l=en-GB
|
||||||
|
|
||||||
|
|
||||||
# PLANS
|
# PLANS
|
||||||
- Website: Add ids to titles
|
- Website: Add ids to titles
|
||||||
|
|
||||||
|
|
||||||
- Update files to import when deploying for included json files instead of secret.json files
|
|
||||||
- Also remove /test/ routes
|
|
||||||
|
|
||||||
|
|
||||||
- FUTURE: Implement Permission system
|
- FUTURE: Implement Permission system
|
||||||
- FUTURE: Add Admin profile (page to change account settings per person like changing pwd)
|
- FUTURE: Add Admin profile (page to change account settings per person like changing pwd)
|
||||||
- FUTURE: add multi-language support
|
- FUTURE: add multi-language support
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "libreevent",
|
"name": "libreevent",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"description": "A free and open source event management solution",
|
"description": "A free and open source event management solution",
|
||||||
"main": "/dist/app.js",
|
"main": "/dist/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
v="V1.0.0"
|
v="V1.0.1"
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
_ _ _ _
|
_ _ _ _
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
8
src/server/package-lock.json
generated
8
src/server/package-lock.json
generated
@@ -15,7 +15,7 @@
|
|||||||
"bcrypt": "^5.0.1",
|
"bcrypt": "^5.0.1",
|
||||||
"body-parser": "^1.20.2",
|
"body-parser": "^1.20.2",
|
||||||
"cookie-parser": "^1.4.6",
|
"cookie-parser": "^1.4.6",
|
||||||
"crypto-js": "^4.1.1",
|
"crypto-js": "^4.2.0",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"express-session": "^1.17.3",
|
"express-session": "^1.17.3",
|
||||||
"html-to-text": "^9.0.5",
|
"html-to-text": "^9.0.5",
|
||||||
@@ -819,9 +819,9 @@
|
|||||||
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
||||||
},
|
},
|
||||||
"node_modules/crypto-js": {
|
"node_modules/crypto-js": {
|
||||||
"version": "4.1.1",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
|
||||||
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
|
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
|
||||||
},
|
},
|
||||||
"node_modules/css-b64-images": {
|
"node_modules/css-b64-images": {
|
||||||
"version": "0.2.5",
|
"version": "0.2.5",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "libreevent",
|
"name": "libreevent",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"description": "Free & Open source event management solution",
|
"description": "Free & Open source event management solution",
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"bcrypt": "^5.0.1",
|
"bcrypt": "^5.0.1",
|
||||||
"body-parser": "^1.20.2",
|
"body-parser": "^1.20.2",
|
||||||
"cookie-parser": "^1.4.6",
|
"cookie-parser": "^1.4.6",
|
||||||
"crypto-js": "^4.1.1",
|
"crypto-js": "^4.2.0",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"express-session": "^1.17.3",
|
"express-session": "^1.17.3",
|
||||||
"html-to-text": "^9.0.5",
|
"html-to-text": "^9.0.5",
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ saveSettings( {
|
|||||||
'gcInterval': 300,
|
'gcInterval': 300,
|
||||||
'ticketTimeout': 900,
|
'ticketTimeout': 900,
|
||||||
'startPage': 'default',
|
'startPage': 'default',
|
||||||
'version': '1.0.0'
|
'version': '1.0.1'
|
||||||
} );
|
} );
|
||||||
|
|
||||||
console.log( ' ==> Done!\n\n' );
|
console.log( ' ==> Done!\n\n' );
|
||||||
@@ -54,6 +54,7 @@ module.exports = ( app, settings ) => {
|
|||||||
}
|
}
|
||||||
let updatedSettings = settings;
|
let updatedSettings = settings;
|
||||||
updatedSettings[ 'name' ] = req.body.websiteName;
|
updatedSettings[ 'name' ] = req.body.websiteName;
|
||||||
|
updatedSettings[ 'yourDomain' ] = req.body.yourDomain;
|
||||||
updatedSettings[ 'mailSender' ] = req.body.mailDisplay;
|
updatedSettings[ 'mailSender' ] = req.body.mailDisplay;
|
||||||
db.saveSettings( updatedSettings );
|
db.saveSettings( updatedSettings );
|
||||||
res.send( 'ok' );
|
res.send( 'ok' );
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "libreevent",
|
"name": "libreevent",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"private": false,
|
"private": false,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --host",
|
"dev": "vite --host",
|
||||||
|
|||||||
6
src/webapp/setup/package-lock.json
generated
6
src/webapp/setup/package-lock.json
generated
@@ -1593,9 +1593,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.26",
|
"version": "8.4.31",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
||||||
"integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==",
|
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "libreevent-setup",
|
"name": "libreevent-setup",
|
||||||
"version": "0.0.0",
|
"version": "1.0.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
<h2>General information</h2>
|
<h2>General information</h2>
|
||||||
<label for="name">Name of the website</label><br>
|
<label for="name">Name of the website</label><br>
|
||||||
<input type="text" name="name" id="name" v-model="formData.websiteName"><br>
|
<input type="text" name="name" id="name" v-model="formData.websiteName"><br>
|
||||||
|
<label for="name">URL of the website</label><br>
|
||||||
|
<input type="text" name="domain" id="domain" v-model="formData.yourDomain"><br>
|
||||||
|
|
||||||
|
|
||||||
<h2>Database</h2>
|
<h2>Database</h2>
|
||||||
@@ -108,7 +110,6 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
submit() {
|
submit() {
|
||||||
this.collectUrl();
|
|
||||||
if ( this.formData.dbType === 'mysql' ) {
|
if ( this.formData.dbType === 'mysql' ) {
|
||||||
if ( !this.formData.db.port || !this.formData.db.host || !this.formData.db.database || !this.formData.db.user || !this.formData.db.password ) {
|
if ( !this.formData.db.port || !this.formData.db.host || !this.formData.db.database || !this.formData.db.user || !this.formData.db.password ) {
|
||||||
this.$refs.notification.createNotification( 'Database settings are not complete!', 5, 'error', 'normal' );
|
this.$refs.notification.createNotification( 'Database settings are not complete!', 5, 'error', 'normal' );
|
||||||
@@ -149,7 +150,7 @@ export default {
|
|||||||
this.$router.push( '/setup/root' );
|
this.$router.push( '/setup/root' );
|
||||||
},
|
},
|
||||||
collectUrl() {
|
collectUrl() {
|
||||||
this.formData.yourDomain = location.protocol + '//' + location.host;
|
this.formData.yourDomain = location.protocol + '//' + location.host + ( location.port ? ':' + location.port : '' );
|
||||||
this.formData.db.host = location.hostname;
|
this.formData.db.host = location.hostname;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -157,6 +158,7 @@ export default {
|
|||||||
if ( sessionStorage.getItem( 'basics' ) ) {
|
if ( sessionStorage.getItem( 'basics' ) ) {
|
||||||
this.formData = JSON.parse( sessionStorage.getItem( 'basics' ) );
|
this.formData = JSON.parse( sessionStorage.getItem( 'basics' ) );
|
||||||
}
|
}
|
||||||
|
this.collectUrl();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -124,15 +124,14 @@ export default {
|
|||||||
let requirementsCount = { 'special': 0, 'numbers': 0, 'lower': 0, 'upper': 0, 'incorrect': '' };
|
let requirementsCount = { 'special': 0, 'numbers': 0, 'lower': 0, 'upper': 0, 'incorrect': '' };
|
||||||
const pw = this.formData.password;
|
const pw = this.formData.password;
|
||||||
for ( let l in pw ) {
|
for ( let l in pw ) {
|
||||||
console.log( pw[ l ] );
|
|
||||||
if ( /[a-z]/.test( pw[ l ] ) ) {
|
if ( /[a-z]/.test( pw[ l ] ) ) {
|
||||||
requirementsCount[ 'lower' ] += 1;
|
requirementsCount[ 'lower' ] += 1;
|
||||||
} else if ( /[A-Z]/.test( pw[ l ] ) ) {
|
} else if ( /[A-Z]/.test( pw[ l ] ) ) {
|
||||||
requirementsCount[ 'upper' ] += 1;
|
requirementsCount[ 'upper' ] += 1;
|
||||||
} else if ( lookup.includes( pw[ l ] ) ) {
|
} else if ( lookup.includes( pw[ l ] ) ) {
|
||||||
requirementsCount[ 'special' ] += 1;
|
requirementsCount[ 'special' ] += 1;
|
||||||
} else if ( !isNaN( pw[ l ] * 1 ) ) {
|
} else if ( !isNaN( pw[ l ] ) ) {
|
||||||
requirementsCount[ 'number' ] += 1;
|
requirementsCount[ 'numbers' ] += 1;
|
||||||
} else {
|
} else {
|
||||||
console.log( 'incorrect letter' );
|
console.log( 'incorrect letter' );
|
||||||
requirementsCount[ 'incorrect' ] = pw[ l ];
|
requirementsCount[ 'incorrect' ] = pw[ l ];
|
||||||
|
|||||||
2
website/dist/download/thanks/index.html
vendored
2
website/dist/download/thanks/index.html
vendored
@@ -33,7 +33,7 @@
|
|||||||
<h1>Thank you for downloading <i>libre</i>ǝvent</h1>
|
<h1>Thank you for downloading <i>libre</i>ǝvent</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<p>If the download didn't start automatically, please click click <a href="https://github.com/simplePCBuilding/libreevent/releases/latest">here</a> and try from there</p>
|
<p>If the download didn't start automatically, please click <a href="https://github.com/simplePCBuilding/libreevent/releases/latest">here</a> and try from there</p>
|
||||||
<h3>Where to go from here?</h3>
|
<h3>Where to go from here?</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Deploy libreevent on a webserver: <a href="/docs/setup/installation">Guide</a></li>
|
<li>Deploy libreevent on a webserver: <a href="/docs/setup/installation">Guide</a></li>
|
||||||
|
|||||||
2
website/dist/templates/main.css
vendored
2
website/dist/templates/main.css
vendored
@@ -44,7 +44,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
::selection {
|
::selection {
|
||||||
background-color: var( --highlight-backdrop );
|
background-color: #7c8cec;
|
||||||
color: var( --secondary-color );
|
color: var( --secondary-color );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user