Bladeren bron

Frontend ip blocking

kanadeko 7 jaren geleden
bovenliggende
commit
3b648ab45e
6 gewijzigde bestanden met toevoegingen van 15 en 7 verwijderingen
  1. 1 0
      README.md
  2. 2 2
      controllers/galleryController.js
  3. 1 1
      controllers/uploadController.js
  4. 2 1
      public/css/style.css
  5. 8 2
      public/index.html
  6. 1 1
      routes/routes.js

+ 1 - 0
README.md

@@ -1,3 +1,4 @@
+![loli-safe](https://i.imgur.com/YqO1nuc.png)   
 # loli-safe
 Pomf-like image uploading service, written in NodeJS
 

+ 2 - 2
controllers/galleryController.js

@@ -6,7 +6,7 @@ let galleryController = {}
 galleryController.list = function(req, res, next){
 	
 	if(!config.privacy.public)
-		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('Not Authorized!')
+		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('not-authorized')
 
 	db.table('gallery').select('id', 'name').then((data) => {
 		res.json({ data })
@@ -16,7 +16,7 @@ galleryController.list = function(req, res, next){
 galleryController.test = function(req, res, next){
 	
 	if(!config.privacy.public)
-		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('Not Authorized!')
+		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('not-authorized')
 
 	let testdata = [
 		{name: 'Test 1'},

+ 1 - 1
controllers/uploadController.js

@@ -25,7 +25,7 @@ uploadsController.upload = function(req, res, next){
 	let gallery = req.headers.gallery
 
 	if(!config.privacy.public)
-		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('Not Authorized!')
+		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('not-authorized')
 	
 	upload(req, res, function (err) {
 		if (err) {

+ 2 - 1
public/css/style.css

@@ -28,7 +28,7 @@ div#dropzone {
 	background-color: rgba(0, 0, 0, 0);
     border-color: #ff3860;
     color: #ff3860;
-    display: flex;
+    display: none;
     width: 100%;
     border-radius: 3px;
     box-shadow: none;
@@ -49,6 +49,7 @@ div#dropzone:hover {
     border-color: #ff3860;
     color: #fff;
 }
+
 img.logo { height: 200px; margin-top: 20px; }
 .dz-preview .dz-details { display: flex; }
 .dz-preview .dz-details .dz-size, .dz-preview .dz-details .dz-filename { flex: 1 }

+ 8 - 2
public/index.html

@@ -24,6 +24,7 @@
 					<div class="columns">
 						<div class="column"></div>
 						<div class="column">
+							<a class="button is-danger is-outlined" id='btnGithub' href='https://github.com/kanadeko/loli-safe' target='_blank'>View on Github</a>
 							<div id="dropzone">Click here or drag and drop files</div>
 						</div>
 						<div class="column"></div>
@@ -57,10 +58,15 @@
 			var xhr = new XMLHttpRequest();
 			xhr.onreadystatechange = function() {
 				if (xhr.readyState == XMLHttpRequest.DONE) {
+					console.log(xhr.responseText)
+					if(xhr.responseText !== 'not-authorized'){
+						document.getElementById('btnGithub').style.display = 'none';
+						document.getElementById('dropzone').style.display = 'flex';
+					}
 					if(xhr.responseText.maxFileSize)
-						maxSize = xhr.responseText.maxFileSize
+						maxSize = xhr.responseText.maxFileSize;
 					if(xhr.responseText.urlPrefix)
-						urlPrefix = xhr.responseText.urlPrefix + '/'
+						urlPrefix = xhr.responseText.urlPrefix + '/';
 				}
 			}
 			xhr.open('GET', '/api/info', true);

+ 1 - 1
routes/routes.js

@@ -5,7 +5,7 @@ const galleryController = require('../controllers/galleryController')
 
 routes.get  ('/info', (req, res, next) => {
 	if(!config.privacy.public)
-		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('Not Authorized!')
+		if(!config.privacy.IPs.includes(req.ip)) return res.status(401).send('not-authorized')
 
 	return res.json({
 		maxFileSize: config.uploads.maxsize.slice(0, -2),