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{