liquid_feedback_frontend
view app/main/member/_show.lua @ 9:0ee1e0c42d4c
Version beta5
Minor security fix: Added missing security filter for admin section. Reading of member listing including login names was possible for all users. Write access has not been possible though.
Changing of name and login is possible while a history of these changes is written and accessible by all users.
Statistics shown in area list
Trimming of user input also converts multiple whitespaces to single space character.
Minor security fix: Added missing security filter for admin section. Reading of member listing including login names was possible for all users. Write access has not been possible though.
Changing of name and login is possible while a history of these changes is written and accessible by all users.
Statistics shown in area list
Trimming of user input also converts multiple whitespaces to single space character.
| author | bsw | 
|---|---|
| date | Mon Jan 04 12:00:00 2010 +0100 (2010-01-04) | 
| parents | 80c215dbf076 | 
| children | 72c5e0ee7c98 | 
 line source
     1 local member = param.get("member", "table")
     3 ui.tabs{
     4   {
     5     name = "profile",
     6     label = _"Profile",
     7     content = function()
     8       ui.form{
     9         attr = { class = "member vertical" },
    10         record = member,
    11         readonly = true,
    12         content = function()
    14           ui.container{
    15             attr = { class = "right" },
    16             content = function()
    18             execute.view{
    19               module = "member_image",
    20               view = "_show",
    21               params = {
    22                 member = member,
    23                 image_type = "photo"
    24               }
    25             }
    27             ui.container{
    28               attr = { class = "contact_data" },
    29               content = function()
    30               end
    31             }
    33             end
    34           }
    36           if member.admin then
    37             ui.field.boolean{ label = _"Admin?",       name = "admin" }
    38           end
    39           if member.locked then
    40             ui.field.boolean{ label = _"Locked?",      name = "locked" }
    41           end
    42           if member.ident_number then
    43             ui.field.text{    label = _"Ident number", name = "ident_number" }
    44           end
    45           ui.field.text{ label = _"Name", name = "name" }
    47           if member.realname and #member.realname > 0 then
    48             ui.field.text{ label = _"Real name", name = "realname" }
    49           end
    50           if member.email and #member.email > 0 then
    51             ui.field.text{ label = _"email", name = "email" }
    52           end
    53           if member.xmpp_address and #member.xmpp_address > 0 then
    54             ui.field.text{ label = _"xmpp", name = "xmpp_address" }
    55           end
    56           if member.website and #member.website > 0 then
    57             ui.field.text{ label = _"Website", name = "website" }
    58           end
    59           if member.phone and #member.phone > 0 then
    60             ui.field.text{ label = _"Phone", name = "phone" }
    61           end
    62           if member.mobile_phone and #member.mobile_phone > 0 then
    63             ui.field.text{ label = _"Mobile phone", name = "mobile_phone" }
    64           end
    65           if member.address and #member.address > 0 then
    66             ui.container{
    67               content = function()
    68                 ui.tag{
    69                   tag = "label",
    70                   attr = { class = "ui_field_label" },
    71                   content = _"Address"
    72                 }
    73                 ui.tag{
    74                   tag = "span",
    75                   content = function()
    76                     slot.put(encode.html_newlines(member.address))
    77                   end
    78                 }
    79               end
    80             }
    81           end
    82           if member.profession and #member.profession > 0 then
    83             ui.field.text{ label = _"Profession", name = "profession" }
    84           end
    85           if member.birthday and #member.birthday > 0 then
    86             ui.field.text{ label = _"Birthday", name = "birthday" }
    87           end
    88           if member.organizational_unit and #member.organizational_unit > 0 then
    89             ui.field.text{ label = _"Organizational unit", name = "organizational_unit" }
    90           end
    91           if member.internal_posts and #member.internal_posts > 0 then
    92             ui.field.text{ label = _"Internal posts", name = "internal_posts" }
    93           end
    94           if member.external_memberships and #member.external_memberships > 0 then
    95             ui.field.text{ label = _"Memberships", name = "external_memberships", multiline = true }
    96           end
    97           if member.external_posts and #member.external_posts > 0 then
    98             ui.field.text{ label = _"Posts", name = "external_posts", multiline = true }
    99           end
   100           slot.put('<br style="clear: right;" />')
   102         end
   103       }
   104       if member.statement and #member.statement > 0 then
   105         ui.container{
   106           attr = { class = "member_statement wiki" },
   107           content = function()
   108             slot.put(format.wiki_text(member.statement))
   109           end
   110         }
   111       end
   112     end
   113   },
   114   {
   115     name = "areas",
   116     label = _"Areas",
   117     content = function()
   118       execute.view{
   119         module = "area",
   120         view = "_list",
   121         params = { areas_selector = member:get_reference_selector("areas") }
   122       }
   123     end
   124   },
   125   {
   126     name = "issues",
   127     label = _"Issues",
   128     content = function()
   129       execute.view{
   130         module = "issue",
   131         view = "_list",
   132         params = { issues_selector = member:get_reference_selector("issues") }
   133       }
   134     end
   135   },
   136   {
   137     name = "supported_initiatives",
   138     label = _"Supported initiatives",
   139     content = function()
   140       execute.view{
   141         module = "initiative",
   142         view = "_list",
   143         params = { initiatives_selector = member:get_reference_selector("supported_initiatives") }
   144       }
   145     end
   146   },
   147   {
   148     name = "initiatied_initiatives",
   149     label = _"Initiated initiatives",
   150     content = function()
   151       execute.view{
   152         module = "initiative",
   153         view = "_list",
   154         params = { initiatives_selector = member:get_reference_selector("initiated_initiatives") }
   155       }
   156     end
   157   },
   158   {
   159     name = "incoming_delegations",
   160     label = _"Incoming delegations",
   161     content = function()
   162       execute.view{
   163         module = "delegation",
   164         view = "_list",
   165         params = { delegations_selector = member:get_reference_selector("incoming_delegations"), incoming = true }
   166       }
   167     end
   168   },
   169   {
   170     name = "Outgoing delegations",
   171     label = _"Outgoing delegations",
   172     content = function()
   173       execute.view{
   174         module = "delegation",
   175         view = "_list",
   176         params = { delegations_selector = member:get_reference_selector("outgoing_delegations"), outgoing = true }
   177       }
   178     end
   179   },
   180   {
   181     name = "contacts",
   182     label = _"Published contacts",
   183     content = function()
   184       execute.view{
   185         module = "member",
   186         view = "_list",
   187         params = { members_selector = member:get_reference_selector("saved_members"):add_where("public") }
   188       }
   189     end
   190   },
   191 }
