- $ACLFormatter = DI::aclFormatter();
-
- $allow_cid = $ACLFormatter->sanitize($allow_cid);
- $allow_gid = $ACLFormatter->sanitize($allow_gid);
- $deny_cid = $ACLFormatter->sanitize($deny_cid);
- $deny_gid = $ACLFormatter->sanitize($deny_gid);
-
- // Public permission
- if (!$allow_cid && !$allow_gid && !$deny_cid && !$deny_gid) {
- return 0;
- }
-
- $condition = [
- 'uid' => $uid,
- 'allow_cid' => $allow_cid,
- 'allow_gid' => $allow_gid,
- 'deny_cid' => $deny_cid,
- 'deny_gid' => $deny_gid
- ];
- $permissionset = DBA::selectFirst('permissionset', ['id'], $condition);
-
- if (DBA::isResult($permissionset)) {
- $psid = $permissionset['id'];
- } else {
- if (DBA::insert('permissionset', $condition, true)) {
- $psid = DBA::lastInsertId();
- } else {
- throw new HTTPException\InternalServerErrorException(L10n::t('Unable to create a new permission set.'));
- }
- }
-
- return $psid;
+ return DI::permissionSet()->getIdFromACL($uid, $allow_cid, $allow_gid, $deny_cid, $deny_gid);