liquid_feedback_frontend

changeset 514:976d493106a1

Updated member api key settings to core 2.0
author bsw
date Sun Apr 15 12:32:59 2012 +0200 (2012-04-15)
parents dbfde3c56790
children 02dea1bbf968
files app/main/member/_action/update_api_key.lua app/main/member/developer_settings.lua
line diff
     1.1 --- a/app/main/member/_action/update_api_key.lua	Thu Apr 12 00:10:54 2012 +0200
     1.2 +++ b/app/main/member/_action/update_api_key.lua	Sun Apr 15 12:32:59 2012 +0200
     1.3 @@ -1,54 +1,27 @@
     1.4 -
     1.5 -local setting_key = "liquidfeedback_frontend_api_key"
     1.6 -local setting = Setting:by_pk(app.session.member.id, setting_key)
     1.7  
     1.8  local api_key
     1.9  
    1.10 -if param.get("delete", atom.boolean) then
    1.11 +if param.get_id() and param.get("delete", atom.boolean) then
    1.12  
    1.13 -  if setting then
    1.14 -    setting:destroy()
    1.15 +  local member_application = MemberApplication:by_id(param.get_id())
    1.16 +  
    1.17 +  if member_application then
    1.18 +    member_application:destroy()
    1.19    end
    1.20  
    1.21 +  slot.put_into("notice", _"API key has been deleted")
    1.22  else
    1.23  
    1.24 -  if not setting then
    1.25 -    setting = Setting:new()
    1.26 -    setting.member_id = app.session.member.id
    1.27 -    setting.key = setting_key
    1.28 -  end
    1.29 -
    1.30 -  api_key = multirand.string(
    1.31 +  local member_application = MemberApplication:new()
    1.32 +  member_application.member_id = app.session.member_id
    1.33 +  member_application.key = multirand.string(
    1.34      20,
    1.35      '23456789BCDFGHJKLMNPQRSTVWXYZbcdfghjkmnpqrstvwxyz'
    1.36    )
    1.37 -
    1.38 -  setting.value = api_key
    1.39 -
    1.40 -  setting:save()
    1.41 -end
    1.42 -
    1.43 -
    1.44 -local setting_key = "liquidfeedback_frontend_api_key_history"
    1.45 +  member_application.name = 'member'
    1.46 +  member_application.comment = ''
    1.47 +  member_application.access_level = 'full'
    1.48  
    1.49 -setting = SettingMap:new()
    1.50 -setting.member_id = app.session.member.id
    1.51 -setting.key = setting_key
    1.52 -setting.subkey = db:query("SELECT now()")[1].now
    1.53 -setting.value = api_key or ""
    1.54 -local dberr = setting:try_save()
    1.55 -
    1.56 -if dberr then
    1.57 -  if dberr:is_kind_of("IntegrityConstraintViolation.UniqueViolation") then
    1.58 -    slot.put_into("error", _"The API key has been changed too fast.")
    1.59 -    return
    1.60 -  else
    1.61 -    dberr:escalate()
    1.62 -  end
    1.63 +  member_application:save()
    1.64 +  slot.put_into("notice", _"API key has been created")
    1.65  end
    1.66 -
    1.67 -if not api_key then
    1.68 -  slot.put_into("notice", _"API key has been deleted")
    1.69 -else
    1.70 -  slot.put_into("notice", _"API key has been updated")
    1.71 -end
     2.1 --- a/app/main/member/developer_settings.lua	Thu Apr 12 00:10:54 2012 +0200
     2.2 +++ b/app/main/member/developer_settings.lua	Sun Apr 15 12:32:59 2012 +0200
     2.3 @@ -40,48 +40,57 @@
     2.4      }
     2.5    end
     2.6  
     2.7 -  local setting_key = "liquidfeedback_frontend_api_key"
     2.8 -  local setting = Setting:by_pk(app.session.member.id, setting_key)
     2.9 -  local api_key
    2.10 -  if setting then
    2.11 -    api_key = setting.value
    2.12 -  end
    2.13 -
    2.14 -  ui.heading{ content = _"Generate / change API key" }
    2.15 +  ui.heading{ content = _"API keys" }
    2.16 +  
    2.17    util.help("member.developer_settings.api_key", _"API key")
    2.18  
    2.19 -  if api_key then
    2.20 -    slot.put(_"Your API key:")
    2.21 -    slot.put(" ")
    2.22 -    slot.put("<tt>", api_key, "</tt>")
    2.23 -    slot.put(" ")
    2.24 -    ui.link{
    2.25 -      text = _"Change API key",
    2.26 -      module = "member",
    2.27 -      action = "update_api_key",
    2.28 -      routing = {
    2.29 -        default = {
    2.30 -          mode = "redirect",
    2.31 -          module = "member",
    2.32 -          view = "developer_settings"
    2.33 -        }
    2.34 +  local member_applications = MemberApplication:new_selector()
    2.35 +    :add_where{ "member_id = ?", app.session.member.id }
    2.36 +    :add_order_by("name, id")
    2.37 +    :exec()
    2.38 +    
    2.39 +  if #member_applications > 0 then
    2.40 +
    2.41 +    ui.list{
    2.42 +      records = member_applications,
    2.43 +      columns = {
    2.44 +        {
    2.45 +          name = "name",
    2.46 +          label = _"Name"
    2.47 +        },
    2.48 +        {
    2.49 +          name = "access_level",
    2.50 +          label = _"Access level"
    2.51 +        },
    2.52 +        {
    2.53 +          name = "key",
    2.54 +          label = _"API Key"
    2.55 +        },
    2.56 +        {
    2.57 +          name = "last_usage",
    2.58 +          label = "Last usage"
    2.59 +        },
    2.60 +        {
    2.61 +          content = function(member_application)
    2.62 +            ui.link{
    2.63 +              text = _"Delete",
    2.64 +              module = "member", action = "update_api_key", id = member_application.id,
    2.65 +              params = { delete = true },
    2.66 +              routing = {
    2.67 +                default = {
    2.68 +                  mode = "redirect",
    2.69 +                  module = "member",
    2.70 +                  view = "developer_settings"
    2.71 +                }
    2.72 +              }
    2.73 +            }
    2.74 +          end
    2.75 +        },
    2.76        }
    2.77      }
    2.78 -    slot.put(" ")
    2.79 -    ui.link{
    2.80 -      text = _"Delete API key",
    2.81 -      module = "member",
    2.82 -      action = "update_api_key",
    2.83 -      params = { delete = true },
    2.84 -      routing = {
    2.85 -        default = {
    2.86 -          mode = "redirect",
    2.87 -          module = "member",
    2.88 -          view = "developer_settings",
    2.89 -        }
    2.90 -      }
    2.91 -    }
    2.92 +  
    2.93    else
    2.94 +    
    2.95      slot.put(_"Currently no API key is set.")
    2.96      slot.put(" ")
    2.97      ui.link{

Impressum / About Us