public function __construct(IRestServer $server, User $user, IEntityAttributeList $attributes) { $userId = $user->Id(); $this->id = $userId; $this->emailAddress = $user->EmailAddress(); $this->firstName = $user->FirstName(); $this->lastName = $user->LastName(); $this->language = $user->Language(); $this->lastLogin = Date::FromDatabase($user->LastLogin())->ToIso(); $this->organization = $user->GetAttribute(UserAttribute::Organization); $this->phoneNumber = $user->GetAttribute(UserAttribute::Phone); $this->position = $user->GetAttribute(UserAttribute::Position); $this->statusId = $user->StatusId(); $this->timezone = $user->Timezone(); $this->username = $user->Username(); $attributeValues = $attributes->GetAttributes($userId); if (!empty($attributeValues)) { foreach ($attributeValues as $av) { $this->customAttributes[] = new CustomAttributeResponse($server, $av->Id(), $av->Label(), $av->Value()); } } foreach ($user->AllowedResourceIds() as $allowedResourceId) { $this->permissions[] = new ResourceItemResponse($server, $allowedResourceId, ''); } foreach ($user->Groups() as $group) { $this->groups[] = new GroupItemResponse($server, $group->GroupId, $group->GroupName); } if ($user->GetIsCalendarSubscriptionAllowed()) { $url = new CalendarSubscriptionUrl($user->GetPublicId(), null, null); $this->icsUrl = $url->__toString(); } }