Example #1
0
def user_update(user_id):
  user_db = model.User.get_by_id(user_id)
  if not user_db:
    flask.abort(404)

  form = UserUpdateForm(obj=user_db)
  for permission in user_db.permissions:
    form.permissions.choices.append((permission, permission))
  form.permissions.choices = sorted(set(form.permissions.choices))
  if form.validate_on_submit():
    if not util.is_valid_username(form.username.data):
      form.username.errors.append('This username is invalid.')
    elif not model.User.is_username_available(form.username.data, user_db.key):
      form.username.errors.append('This username is already taken.')
    else:
      form.populate_obj(user_db)
      if auth.current_user_id() == user_db.key.id():
        user_db.admin = True
        user_db.active = True
      user_db.put()
      return flask.redirect(flask.url_for(
          'user_list', order='-modified', active=user_db.active,
        ))

  if flask.request.path.startswith('/_s/'):
    return util.jsonify_model_db(user_db)

  return flask.render_template(
      'user/user_update.html',
      title=user_db.name,
      html_class='user-update',
      form=form,
      user_db=user_db,
    )
Example #2
0
def user_update(user_id=0):
  if user_id:
    user_db = model.User.get_by_id(user_id)
  else:
    user_db = model.User(name='', username='')
  if not user_db:
    flask.abort(404)

  form = UserUpdateForm(obj=user_db)
  for permission in user_db.permissions:
    form.permissions.choices.append((permission, permission))
  form.permissions.choices = sorted(set(form.permissions.choices))
  if form.validate_on_submit():
    if not util.is_valid_username(form.username.data):
      form.username.errors.append(_('This username is invalid.'))
    elif not model.User.is_username_available(form.username.data, user_db.key):
      form.username.errors.append(_('This username is already taken.'))
    else:
      form.populate_obj(user_db)
      if auth.current_user_key() == user_db.key:
        user_db.admin = True
        user_db.active = True
      user_db.put()
      return flask.redirect(flask.url_for(
          'user_list', order='-modified', active=user_db.active,
        ))

  return flask.render_template(
      'user/user_update.html',
      title=user_db.name or _('New User'),
      html_class='user-update',
      form=form,
      user_db=user_db,
      api_url=flask.url_for('api.admin.user', user_key=user_db.key.urlsafe()) if user_db.key else ''
    )
Example #3
0
def user_update(user_id):
    user_db = model.User.get_by_id(user_id)
    if not user_db:
        flask.abort(404)

    form = UserUpdateForm(obj=user_db)
    if form.validate_on_submit():
        if not util.is_valid_username(form.username.data):
            form.username.errors.append('This username is invalid.')
        elif not is_username_available(form.username.data, user_db):
            form.username.errors.append('This username is taken.')
        else:
            form.populate_obj(user_db)
            if auth.current_user_id() == user_db.key.id():
                user_db.admin = True
                user_db.active = True
            user_db.put()
            return flask.redirect(flask.url_for('user_list',
                                                order='-modified'))

    if flask.request.path.startswith('/_s/'):
        return util.jsonify_model_db(user_db)

    return flask.render_template(
        'user/user_update.html',
        title=user_db.name,
        html_class='user-update',
        form=form,
        user_db=user_db,
    )