def AuthenticatedGet(self, org, _):
        global_admin = False
        local_admin = False
        if org.name == GLOBAL_ADMIN_NAME:
            global_admin = True
        if org.is_admin == True and global_admin == False:
            local_admin = True
        
        if global_admin == False and local_admin == False:
            self.redirect("/")
            return
            
        # lookup contact
        try:
            id = int(self.request.get("contact"))
            contact = Contact.get_by_id(id)
        except:
            self.abort(404)

        # check authorised
        if not org.may_administer(contact):
            self.abort(403)
        
        # create form
        form = ContactFormFull(None, contact)

        # render template
        self.response.out.write(template.render({
            "contact": contact,
            "form": form,
            "organization_name": (
                contact.organization.name if contact.organization else None
            ),
            "global_admin": global_admin,
        }))
    def AuthenticatedGet(self, org, event):
        try:
            contact_id = int(self.request.get("contact", -1))
            contact = Contact.get_by_id(contact_id)
        except:
            self.abort(404)
        if not contact:
            self.abort(404)

        self.response.out.write(template.render({
            "contact": contact,
            "form": ContactFormFull(None, contact),  # use form to iterate fields
        }))
    def AuthenticatedGet(self, org, event):
        try:
            contact_id = int(self.request.get("contact", -1))
            contact = Contact.get_by_id(contact_id)
        except:
            self.abort(404)
        if not contact:
            self.abort(404)

        self.response.out.write(
            template.render({
                "contact": contact,
                "form": ContactFormFull(None,
                                        contact),  # use form to iterate fields
            }))
    def AuthenticatedPost(self, org, _):
        global_admin = False
        local_admin = False
        if org.name == GLOBAL_ADMIN_NAME:
            global_admin = True
        if org.is_admin == True and global_admin == False:
            local_admin = True
        
        if global_admin == False and local_admin == False:
            self.redirect("/")
            return

        form = ContactFormFull(self.request.POST)

        # retrieve contact
        try:
            contact_id = int(self.request.get("contact_id"))
            contact = Contact.get_by_id(contact_id)
        except:
            self.abort(404)

        # check authorised
        if not org.may_administer(contact):
            self.abort(403)

        if form.validate() and not form.errors:
            # update contact and redirect
            form.populate_obj(contact)
            contact.save()
            self.redirect('/admin-single-contact?contact=%d' % contact.key().id())
        else:
            self.response.out.write(template.render({
                "contact": contact,
                "form": form,
                "organization_name": (
                    contact.organization.name if contact.organization else None
                ),
                "global_admin": global_admin,
            }))