- # :TODO:maethor:120528: Check fields
- password = "toto" # :TODO:maethor:120528: Generate password
- admin = 0
- if 'admin' in request.form.keys():
- admin = 1
- g.db.execute('insert into users (email, name, organization, password, is_admin, key) values (?, ?, ?, ?, ?, "invalid")',
- [request.form['email'], request.form['username'], request.form['organization'], password, admin])
- g.db.commit()
- user = query_db('select * from users where email = ?', [request.form["email"]], one=True)
- if user:
- for group in request.form.getlist('groups'):
- if query_db('select id from groups where id = ?', group, one=True) is None:
- abort(401)
- g.db.execute('insert into user_group values (?, ?)', [user['id'], group])
- g.db.commit()
- # :TODO:maethor:120528: Send mail
- flash(u'Le nouvel utilisateur a été créé avec succès', 'success')
- return redirect(url_for('admin_users'))
+ if query_db('select * from users where email=?', [request.form['email']], one=True) is None:
+ if request.form['username']:
+ if query_db('select * from users where name=?', [request.form['username']], one=True) is None:
+ # :TODO:maethor:120528: Check fields
+ password = "toto" # :TODO:maethor:120528: Generate password
+ admin = 0
+ if 'admin' in request.form.keys():
+ admin = 1
+ g.db.execute('insert into users (email, name, organization, password, is_admin, key) values (?, ?, ?, ?, ?, "invalid")',
+ [request.form['email'], request.form['username'], request.form['organization'], password, admin])
+ g.db.commit()
+ user = query_db('select * from users where email = ?', [request.form["email"]], one=True)
+ if user:
+ groups = request.form.getlist('groups')
+ groups.append('1')
+ for group in groups:
+ if query_db('select id from groups where id = ?', group, one=True) is None:
+ abort(401)
+ g.db.execute('insert into user_group values (?, ?)', [user['id'], group])
+ g.db.commit()
+ # :TODO:maethor:120528: Send mail
+ flash(u'Le nouvel utilisateur a été créé avec succès', 'success')
+ return redirect(url_for('admin_users'))
+ else:
+ flash(u'Une erreur s\'est produite.', 'error')
+ else:
+ flash(u'Le nom ' + request.form['username'] + u' est déjà pris ! Veuillez en choisir un autre.', 'error')
+ else:
+ flash(u"Vous devez spécifier un nom d'utilisateur.", 'error')