liquid_feedback_frontend
view app/main/member/_action/update_api_key.lua @ 339:f8481330f4c2
Route user back to initiative after set/remove interest or delegation
| author | bsw | 
|---|---|
| date | Tue Feb 28 18:59:11 2012 +0100 (2012-02-28) | 
| parents | 0849be391140 | 
| children | 976d493106a1 | 
 line source
     2 local setting_key = "liquidfeedback_frontend_api_key"
     3 local setting = Setting:by_pk(app.session.member.id, setting_key)
     5 local api_key
     7 if param.get("delete", atom.boolean) then
     9   if setting then
    10     setting:destroy()
    11   end
    13 else
    15   if not setting then
    16     setting = Setting:new()
    17     setting.member_id = app.session.member.id
    18     setting.key = setting_key
    19   end
    21   api_key = multirand.string(
    22     20,
    23     '23456789BCDFGHJKLMNPQRSTVWXYZbcdfghjkmnpqrstvwxyz'
    24   )
    26   setting.value = api_key
    28   setting:save()
    29 end
    32 local setting_key = "liquidfeedback_frontend_api_key_history"
    34 setting = SettingMap:new()
    35 setting.member_id = app.session.member.id
    36 setting.key = setting_key
    37 setting.subkey = db:query("SELECT now()")[1].now
    38 setting.value = api_key or ""
    39 local dberr = setting:try_save()
    41 if dberr then
    42   if dberr:is_kind_of("IntegrityConstraintViolation.UniqueViolation") then
    43     slot.put_into("error", _"The API key has been changed too fast.")
    44     return
    45   else
    46     dberr:escalate()
    47   end
    48 end
    50 if not api_key then
    51   slot.put_into("notice", _"API key has been deleted")
    52 else
    53   slot.put_into("notice", _"API key has been updated")
    54 end
