def user_edit(email): with permissions['users'].require(): from recorder.models import Role, User user = User.load(email) if not user: return abort(404) ret = _default_response() ret['form'] = UserEditForm() ret['form'].roles.choices = [(r.name, r.description) for r in Role.all()] ret['user'] = user ret['title'] = u"Edtuj konto" ret['roles'] = user.roles ret['section_title'] = u"Edytuj konto" if request.method == 'POST' and ret['form'].validate_on_submit(): if ret['form'].password.data == ret['form'].re_password.data: if ret['form'].password.data: user.password = ret['form'].password.data user.roles = ret['form'].roles.data user.save() return redirect('users') else: ret['error'] = u"Podano dwa różne hasła" return ret
def user_add(): with permissions['users'].require(): from recorder.models import Role ret = _default_response() ret['form'] = UserAddForm() ret['form'].roles.choices = [(r.name, r.description) for r in Role.all()] ret['title'] = u"Dodaj użytkownika" ret['section_title'] = u"Dodaj użytkownika" if ret['form'].validate_on_submit(): if ret['form'].password.data == ret['form'].re_password.data: from recorder.models import User user = User(**{'email':ret['form'].email.data, 'password' : ret['form'].password.data, 'roles' : ret['form'].roles.data }) user.save() else: ret['error'] = u"Podano dwa różne hasła" return ret
def users(): with permissions['users'].require(): from recorder.models import Role, User ret = _default_response() ret['title'] = u"Użytkownicy" ret['section_title'] = u"Użytkownicy" users = User.all() for u in users: u.roles = map(lambda r: Role.load(r).description, u.roles) ret['users'] = users return ret
def login(): message = "" form = LoginForm() if form.validate_on_submit(): from recorder.models import User user = User.load(form.email.data) if user and user.check_password(form.password.data): login_user(user) identity_changed.send(current_app._get_current_object(), identity=Identity(user.email)) return redirect(url_for('search')) else: message = u"Zły użytkownik lub hasło" return {'form' : form, 'message' : message}
def load_user(email): from recorder.models import User return User.load(email)
def user_delete(email): with permissions['users'].require(): from recorder.models import Role, User user = User.load(email) user.delete() return redirect('users')
def validate_email(form, field): from recorder.models import User if User.load(field.data): raise ValidationError(u"Email '%s' jest już zajety" % field.data)