Newer
Older
Sonia Zorba
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/* ----------------------------------------------------------------------------
* INAF - National Institute for Astrophysics
* IRA - Radioastronomical Institute - Bologna
* OATS - Astronomical Observatory - Trieste
* ----------------------------------------------------------------------------
*
* Copyright (C) 2016 Istituto Nazionale di Astrofisica
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License Version 3 as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
namespace RAP;
class Identity {
const EDU_GAIN = "eduGAIN";
const X509 = "X.509";
const GOOGLE = "Google";
const FACEBOOK = "Facebook";
const LINKEDIN = "LinkedIn";
const LOCAL = "Local";
private static $ALLOWED_TYPES = [Identity::EDU_GAIN, Identity::X509, Identity::GOOGLE, Identity::FACEBOOK, Identity::LINKEDIN, Identity::LOCAL];
/**
* Identity id in the database. Mandatory field.
*/
public $id;
/**
* One of the types specified above. Mandatory field.
*/
Sonia Zorba
committed
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/**
* Data related to specific account type (shibboleth persistent id, facebook id, etc, ...). Mandatory field.
*/
public $typedId;
/**
* Primary email related to this identity. Mandatory field.
* User can have additional email addresses. These are stored into User class.
*/
public $email;
/**
* First name
*/
public $name;
/**
* Last name / Family name
*/
public $surname;
/**
* Institution / Organization. Not mandatory.
*/
public $institution;
/**
* For eduGAIN identities.
*/
public $eppn;
public function __construct($userType) {
$isAllowedType = false;
foreach (Identity::$ALLOWED_TYPES as $type) {
if ($userType === $type) {
$isAllowedType = true;
break;
}
}
if (!$isAllowedType) {
throw new \Exception($userType . " is not a supported user type");
}
$this->type = $userType;
}
}