19 declare(strict_types=1);
27 protected \ilDBInterface
$db;
36 $this->db = (
$db) ?: $DIC->database();
37 $this->factory_service = (
$factory_service) ?: $DIC->skills()->internal()->factory();
45 "DELETE FROM skl_profile_role WHERE " .
46 " profile_id = " .
$ilDB->quote($profile_id,
"integer")
50 public function get(
int $profile_id): array
55 "SELECT * FROM skl_profile_role " .
56 " WHERE profile_id = " .
$ilDB->quote($profile_id,
"integer")
59 while ($rec =
$ilDB->fetchAssoc($set)) {
68 return $this->factory_service->profile()->profileRoleAssignment(
83 array(
"profile_id" => array(
"integer", $profile_id),
84 "role_id" => array(
"integer", $role_id),
95 "DELETE FROM skl_profile_role WHERE " .
96 " profile_id = " .
$ilDB->quote($profile_id,
"integer") .
97 " AND role_id = " .
$ilDB->quote($role_id,
"integer")
106 "DELETE FROM skl_profile_role WHERE " .
107 " role_id = " .
$ilDB->quote($role_id,
"integer")
120 "SELECT spr.profile_id, spr.role_id, sp.title, sp.description, sp.ref_id, sp.skill_tree_id, sp.image_id " .
121 " FROM skl_profile_role spr INNER JOIN skl_profile sp ON (spr.profile_id = sp.id) " .
122 " WHERE spr.role_id = " .
$ilDB->quote($role_id,
"integer") .
123 " ORDER BY sp.title ASC" 125 while ($rec =
$ilDB->fetchAssoc($set)) {
140 "SELECT spr.profile_id, spr.role_id, sp.title, sp.description, sp.ref_id, sp.skill_tree_id, sp.image_id " .
141 " FROM skl_profile_role spr INNER JOIN skl_profile sp ON (spr.profile_id = sp.id) " .
142 " WHERE spr.role_id = " .
$ilDB->quote($role_id,
"integer") .
143 " AND sp.ref_id = 0" .
144 " ORDER BY sp.title ASC" 146 while ($rec =
$ilDB->fetchAssoc($set)) {
162 "SELECT spr.profile_id, spr.role_id, sp.title, sp.description, sp.ref_id, sp.skill_tree_id, sp.image_id " .
163 " FROM skl_profile_role spr INNER JOIN skl_profile sp ON (spr.profile_id = sp.id) " .
164 " WHERE spr.role_id = " .
$ilDB->quote($role_id,
"integer") .
165 " AND sp.ref_id <> 0" .
166 " ORDER BY sp.title ASC" 168 while ($rec =
$ilDB->fetchAssoc($set)) {
176 $rec[
"id"] = (
int) $rec[
"id"];
177 $rec[
"title"] = (string) $rec[
"title"];
178 $rec[
"description"] = (string) $rec[
"description"];
179 $rec[
"skill_tree_id"] = (
int) $rec[
"skill_tree_id"];
180 $rec[
"image_id"] = (string) $rec[
"image_id"];
181 $rec[
"ref_id"] = (
int) $rec[
"ref_id"];
183 return $this->factory_service->profile()->profile(
187 $rec[
"skill_tree_id"],
195 $rec[
"role_id"] = (
int) $rec[
"role_id"];
196 $rec[
"profile_id"] = (
int) $rec[
"profile_id"];
197 $rec[
"title"] = (string) $rec[
"title"];
198 $rec[
"description"] = (string) $rec[
"description"];
199 $rec[
"skill_tree_id"] = (
int) $rec[
"skill_tree_id"];
200 $rec[
"image_id"] = (string) $rec[
"image_id"];
201 $rec[
"ref_id"] = (
int) $rec[
"ref_id"];
203 return $this->factory_service->profile()->roleProfile(
208 $rec[
"skill_tree_id"],
219 "SELECT count(*) rcnt FROM skl_profile_role " .
220 " WHERE profile_id = " .
$ilDB->quote($profile_id,
"integer")
222 $rec =
$ilDB->fetchAssoc($set);
223 return (
int) $rec[
"rcnt"];
getRoleAssignmentFromRecord(array $rec)
getRoleProfileFromRecord(array $rec)
addRoleToProfile(int $profile_id, int $role_id)
Service SkillInternalFactoryService $factory_service
getLocalProfilesOfRole(int $role_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getAllProfilesOfRole(int $role_id)
deleteProfileRoles(int $profile_id)
__construct(?\ilDBInterface $db=null, ?Service\SkillInternalFactoryService $factory_service=null)
Skill internal factory service.
getProfileFromRecord(array $rec)
removeRoleFromAllProfiles(int $role_id)
removeRoleFromProfile(int $profile_id, int $role_id)
getGlobalProfilesOfRole(int $role_id)
countRoles(int $profile_id)