ui/js/coffee/kibble_account.coffee (62 lines of code) (raw):

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. kibbleLoginCallback = (json, state) -> userAccount = json # Everything okay, redirect to dashboard :) m = location.href.match(/\?redirect=(.+)$/) if m and not m[1].match(/:/) location.href = m[1] else location.href = "/organisations.html?page=org" kibbleLogin = (email, password) -> put("session", {email: email, password: password}, null, kibbleLoginCallback) return false signout = () -> xdelete('session', {}, {}, () -> location.href = 'login.html') accountCallback = (json, state) -> obj = get('signup') obj.innerHTML = "" h = new HTML('h3', {}, "Account created!") obj.appendChild(h) if json.verified t = new HTML('p', {}, "You can now log in and use your account") else t = new HTML('p', {}, "Please check your email account for a verification email.") obj.appendChild(t) kibbleSignup = (form) -> email = form.email.value displayName = form.displayname.value password = form.password.value password2 = form.password2.value # Passwords must match if password != password2 alert("Passwords must match!") return false # Username must be >= 2 chars if displayName.length < 2 alert("Please enter a proper display name!") return false # Email must be valid if not email.match(/([^@]+@[^.]+\.[^.])/) alert("Please enter a valid email address!") return false put('account', { email: email, password: password, displayname: displayName }, null, accountCallback) return false