<% /*
    $Revision$
    $Id$

    File:           model_fac_idp.inc
    Description:
    Notes:          Documentatie in de wiki onder Authenticeren
*/

function fac_idp()
{
    this.table = "fac_idp";
    this.primary = "fac_idp_key";
    this.records_name = "idps";
    this.record_name = "idp";
    this.autfunction = "WEB_FACFAC";
    this.record_title = L("fac_idp");
    this.records_title = L("fac_idp_m");

    this.fields = {
        "id": {
            "dbs": "fac_idp_key",
            "label": "Key",
            "typ": "key",
            "seq": "fac_s_fac_idp_key"
        },
        "code": {
            "dbs": "fac_idp_code",
            "label": L("fac_idp_code"),
            "typ": "varchar"
        },
        "name": {
            "dbs": "fac_idp_omschrijving",
            "label": L("fac_idp_omschrijving"),
            "typ": "varchar",
            "required": true
        },
        "type": {
            "dbs": "fac_idp_type",
            "label": L("fac_idp_type"),
            "typ": "key",
            "required": true,
            "LOV": L("fac_idp_typeLOV")
        },
        "remark": {
            "dbs": "fac_idp_opmerking",
            "label": L("fac_idp_opmerking"),
            "typ": "memo"
        },
        "secret": {
            "dbs": "fac_idp_secret",
            "label": L("fac_idp_secret"),
            "typ": "varchar",
            "defaultvalue": shared.random(32)
        },
        "audience": {
            "dbs": "fac_idp_audience",
            "label": L("fac_idp_audience"),
            "typ": "varchar",
            "placeholder": customerId + ".facilitor.nl"
        },
        "issuer": {
            "dbs": "fac_idp_issuer",
            "label": L("fac_idp_issuer"),
            "typ": "varchar"
        },
        "algorithm": {
            "dbs": "fac_idp_algorithm",
            "label": L("fac_idp_algorithm"),
            "typ": "varchar"
        },
        "timeout": {
            "dbs": "fac_idp_clockskew",
            "label": L("fac_idp_clockskew"),
            "typ": "number",
            "defaultvalue": 30
        },
        "duration": {
            "dbs": "fac_idp_duration",
            "label": L("fac_idp_duration"),
            "typ": "number"
        },
        "remote_loginurl": {
            "dbs": "fac_idp_remote_loginurl",
            "label": L("fac_idp_remote_loginurl"),
            "typ": "varchar"
        },
        "remote_logouturl": {
            "dbs": "fac_idp_remote_logouturl",
            "label": L("fac_idp_remote_logouturl"),
            "typ": "varchar"
        },
        "usermapping": {
            "dbs": "fac_idp_usermapping",
            "label": L("fac_idp_usermapping"),
            "typ": "varchar"
        },
        "ipfilter": {
            "dbs": "fac_idp_ipfilter",
            "label": L("fac_idp_ipfilter"),
            "typ": "varchar"
        },
        "_currentIP" : {
            "dbs": "",
            "label": "Current IP",
            "typ": "label",
            "labelvalue": String(Request.ServerVariables("REMOTE_ADDR"))
        },
        "ipauto": {
            "dbs": "fac_idp_ipauto",
            "label": L("fac_idp_ipauto"),
            "typ": "check0"
        },
/*
        "company": {
             "dbs": "prs_bedrijf_key",
             "typ": "key",
             "foreign": "prs_bedrijf",
             "label": L("lcl_idp_company")
        }
        ,
        "department": {
             "dbs": "prs_afdeling_key",
             "typ": "key",
             "foreign": "prs_afdeling",
             "label": L("lcl_idp_department")
        },
        "authorization": {
            "dbs": "fac_functie_key",
            "label": L("fac_idp_functie_key"),
            "typ": "key",
            "foreign": "fac_functie"
        },
*/
        "internal": {
            "dbs": "fac_idp_internal",
            "label": L("fac_idp_internal"),
            "typ": "check0",
            "readonly": true
        }
    }

    this.REST_GET    = generic_REST_GET(this);
    this.REST_POST   = generic_REST_POST(this);
    this.REST_PUT    = generic_REST_PUT(this);
    this.REST_DELETE = generic_REST_DELETE(this);
}
%>