Skip to content

Commit c18601c

Browse files
committed
Add missing file in be4f22b
1 parent fe819b0 commit c18601c

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

main/inc/lib/UnserializeApi.php

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?php
2+
/* For licensing terms, see /license.txt */
3+
4+
use Brumann\Polyfill\Unserialize;
5+
6+
/**
7+
* Class UnserializeApi.
8+
*/
9+
class UnserializeApi
10+
{
11+
/**
12+
* Unserialize content using Brummann\Polyfill\Unserialize.
13+
*
14+
* @param string $type
15+
* @param string $serialized
16+
* @param bool $ignoreErrors. Optional.
17+
*
18+
* @return mixed
19+
*/
20+
public static function unserialize($type, $serialized, $ignoreErrors = false)
21+
{
22+
$allowedClasses = [];
23+
24+
switch ($type) {
25+
case 'career':
26+
case 'sequence_graph':
27+
$allowedClasses = [
28+
\Fhaculty\Graph\Graph::class,
29+
\Fhaculty\Graph\Set\VerticesMap::class,
30+
\Fhaculty\Graph\Set\Vertices::class,
31+
\Fhaculty\Graph\Set\Edges::class,
32+
];
33+
break;
34+
case 'course':
35+
$allowedClasses = [
36+
\Chamilo\CourseBundle\Component\CourseCopy\Course::class,
37+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Asset::class,
38+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Announcement::class,
39+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Attendance::class,
40+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\CalendarEvent::class,
41+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\CourseCopyLearnpath::class,
42+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\CourseCopyTestCategory::class,
43+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\CourseDescription::class,
44+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\CourseSession::class,
45+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Document::class,
46+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Forum::class,
47+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\ForumCategory::class,
48+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\ForumPost::class,
49+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\ForumTopic::class,
50+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Glossary::class,
51+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\GradeBookBackup::class,
52+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Link::class,
53+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\LinkCategory::class,
54+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Quiz::class,
55+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\QuizQuestion::class,
56+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\QuizQuestionOption::class,
57+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\ScormDocument::class,
58+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Survey::class,
59+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\SurveyInvitation::class,
60+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\SurveyQuestion::class,
61+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Thematic::class,
62+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\ToolIntro::class,
63+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Wiki::class,
64+
\Chamilo\CourseBundle\Component\CourseCopy\Resources\Work::class,
65+
stdClass::class,
66+
Category::class,
67+
AttendanceLink::class,
68+
DropboxLink::class,
69+
Evaluation::class,
70+
ExerciseLink::class,
71+
ForumThreadLink::class,
72+
LearnpathLink::class,
73+
LinkFactory::class,
74+
Result::class,
75+
StudentPublicationLink::class,
76+
SurveyLink::class,
77+
];
78+
// no break
79+
case 'lp':
80+
$allowedClasses = array_merge(
81+
$allowedClasses,
82+
[
83+
learnpath::class,
84+
learnpathItem::class,
85+
aicc::class,
86+
aiccBlock::class,
87+
aiccItem::class,
88+
aiccObjective::class,
89+
aiccResource::class,
90+
scorm::class,
91+
scormItem::class,
92+
scormMetadata::class,
93+
scormOrganization::class,
94+
scormResource::class,
95+
Link::class,
96+
LpItem::class,
97+
]
98+
);
99+
break;
100+
case 'not_allowed_classes':
101+
default:
102+
$allowedClasses = false;
103+
}
104+
105+
if ($ignoreErrors) {
106+
return @Unserialize::unserialize(
107+
$serialized,
108+
['allowed_classes' => $allowedClasses]
109+
);
110+
}
111+
112+
return Unserialize::unserialize(
113+
$serialized,
114+
['allowed_classes' => $allowedClasses]
115+
);
116+
}
117+
}

0 commit comments

Comments
 (0)