Fixed failing signups and made oauth settings work
Fixed the signup form so it no longer fails, and made the oauth login buttons only appear when they have been enabled in the settings.json file
This commit is contained in:
@@ -2,12 +2,12 @@
|
||||
"branding":{
|
||||
"name":"AiThingy"
|
||||
},
|
||||
"auth_mode":"code",
|
||||
"signup_mode":"code",
|
||||
"default_role":"none",
|
||||
"default_permissions":[
|
||||
"createChat"
|
||||
],
|
||||
"auth_codes":[
|
||||
"signup_codes":[
|
||||
{
|
||||
"name":"code1",
|
||||
"code":"a1b2c3",
|
||||
@@ -29,5 +29,6 @@
|
||||
"enabled":"true",
|
||||
"client_id":"client_id",
|
||||
"client_secret":"client_secret"
|
||||
}
|
||||
},
|
||||
"mongo_password":"yourMongoPassword"
|
||||
}
|
||||
8
main.py
8
main.py
@@ -23,7 +23,7 @@ github_token_endpoint = "https://github.com/login/oauth/access_token"
|
||||
github_user_endpoint = "https://api.github.com/user"
|
||||
|
||||
mongoUser = 'root'
|
||||
mongoPassword = '39zj6bNT5gaXbmuOBAYn5pZRO'
|
||||
mongoPassword = settings["mongo_password"]
|
||||
mongoHost = 'localhost'
|
||||
mongoPort = '27017'
|
||||
mongoDatabase = 'database'
|
||||
@@ -156,7 +156,7 @@ def createChat():
|
||||
def signup():
|
||||
token = request.cookies.get('auth_token', 'none')
|
||||
if (token == 'none'):
|
||||
return render_template('signup.html', appName=appName, githubUrl=github_auth_endpoint)
|
||||
return render_template('signup.html', appName=appName, githubUrl=github_auth_endpoint, githublogin=settings["github_oauth"]["enabled"], oauthlogin=settings["oauth_login"])
|
||||
|
||||
# Index page
|
||||
# If logged in return home menu (Or logout if token is expired),
|
||||
@@ -165,7 +165,7 @@ def signup():
|
||||
def index():
|
||||
token = request.cookies.get('auth_token', 'none')
|
||||
if (token == 'none'):
|
||||
return render_template('login.html', appName=appName, githubUrl=github_auth_endpoint)
|
||||
return render_template('login.html', appName=appName, githubUrl=github_auth_endpoint, githublogin=settings["github_oauth"]["enabled"], oauthlogin=settings["oauth_login"])
|
||||
else:
|
||||
user = usersCollection.find_one({'tokens.token': token}, {"_id":1,"tokens":{"$elemMatch": {"token":token}}})
|
||||
if (user):
|
||||
@@ -312,13 +312,11 @@ def handleSignup():
|
||||
creationDate = int(datetime.now().timestamp())
|
||||
accessCode = request.json['access_code']
|
||||
displayName = request.json['displayname']
|
||||
|
||||
# Check if details are taken
|
||||
sameUsername = usersCollection.count_documents({"username":username})
|
||||
sameEmail = usersCollection.count_documents({"email":email})
|
||||
if (sameUsername != 0 ) or ( sameEmail != 0):
|
||||
return jsonify("User already exists")
|
||||
|
||||
# Check for appropriate role
|
||||
codeFound = False
|
||||
if (settings["signup_mode"] == "none"):
|
||||
|
||||
@@ -154,13 +154,17 @@
|
||||
<h1>Sign into {{ appName }}</h1>
|
||||
<p>Log in:</p>
|
||||
</div>
|
||||
{% if oauthlogin == "true" %}
|
||||
<div class="oauth-buttons">
|
||||
{% if githublogin == "true" %}
|
||||
<a href="{{ githubUrl }}" class="button">
|
||||
<img src="{{ url_for('static', filename='github-icon.png') }}" alt="Github logo">
|
||||
Sign in with Github
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="divider">Or</div>
|
||||
{% endif %}
|
||||
<div class="emaillogin">
|
||||
<input id="userbox" class="input" type="text" name="username" placeholder="Username">
|
||||
<input id="passbox" class="input" type="password" name="password" placeholder="Password">
|
||||
|
||||
@@ -154,13 +154,17 @@
|
||||
<h1>Sign up to {{ appName }}</h1>
|
||||
<p>Please fill out your details:</p>
|
||||
</div>
|
||||
{% if oauthlogin == "true" %}
|
||||
<div class="oauth-buttons">
|
||||
{% if githublogin == "true" %}
|
||||
<a href="{{ githubUrl }}" class="button">
|
||||
<img src="{{ url_for('static', filename='github-icon.png') }}" alt="Github logo">
|
||||
Sign up with Github
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="divider">Or</div>
|
||||
{% endif %}
|
||||
<div class="emaillogin">
|
||||
<input id="userbox" class="input" type="text" name="username" placeholder="Username">
|
||||
<input id="displaybox" class="input" type="text" name="display" placeholder="Display name">
|
||||
@@ -168,7 +172,7 @@
|
||||
<input id="passbox" class="input" type="password" name="password" placeholder="Password">
|
||||
<input id="codebox" class="input" type="password" name="password" placeholder="Signup Code">
|
||||
</div>
|
||||
<a onclick="login(document.getElementById('userbox').value, document.getElementById('passbox').value, document.getElementById('displaybox').value), document.getElementById('emailbox').value, document.getElementById('codebox').value" class="button loginbutton">Sign Up</a>
|
||||
<a onclick="login(document.getElementById('userbox').value, document.getElementById('passbox').value, document.getElementById('displaybox').value, document.getElementById('emailbox').value, document.getElementById('codebox').value)" class="button loginbutton">Sign Up</a>
|
||||
<p id="incorrectdetailstext" style="display: none;">Incorrect signup code</p>
|
||||
<p id="existingusertext" style="display: none;">User already exists</p>
|
||||
<p id="somethingwrongtext" style="display: none;">Something went wrong</p>
|
||||
@@ -200,8 +204,7 @@
|
||||
} else if (result == "Signups have been disabled" || result == "An error occured") {
|
||||
document.getElementById("somethingwrongtext").style = "display: block;"
|
||||
} else {
|
||||
document.cookie = `auth_token=${result}`;
|
||||
window.location.reload();
|
||||
window.location = "{{ url_for('index') }}";
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error.message)
|
||||
|
||||
Reference in New Issue
Block a user