public function setPerms($element_id) { $permissions = permissionsCollection::getInstance(); if(!getRequest('perms_read') && !getRequest('perms_edit') && !getRequest('perms_create') && !getRequest('perms_delete') && !getRequest('perms_move') && /* Note this argument. It's important' */ getRequest('default-permissions-set')) { $permissions->setDefaultPermissions($element_id); return; } elseif (!getRequest('perms_read') && !getRequest('perms_edit') && !getRequest('perms_create') && !getRequest('perms_delete') && !getRequest('permissions-sent')) { return; } $perms_read = ($t = getRequest('perms_read')) ? $t : array(); $perms_edit = ($t = getRequest('perms_edit')) ? $t : array(); $perms_create = ($t = getRequest('perms_create')) ? $t : array(); $perms_delete = ($t = getRequest('perms_delete')) ? $t : array(); $perms_move = ($t = getRequest('perms_move')) ? $t : array(); $permissions->resetElementPermissions($element_id); $owners = array_keys($perms_read); $owners = array_merge($owners, array_keys($perms_edit)); $owners = array_merge($owners, array_keys($perms_create)); $owners = array_merge($owners, array_keys($perms_delete)); $owners = array_merge($owners, array_keys($perms_move)); $owners = array_unique($owners); foreach($owners as $owner) { $level = 0; if(isset($perms_read[$owner])) $level |= 1; if(isset($perms_edit[$owner])) $level |= 2; if(isset($perms_create[$owner])) $level |= 4; if(isset($perms_delete[$owner])) $level |= 8; if(isset($perms_move[$owner])) $level |= 16; if (is_string($owner)) $owner = umiObjectsCollection::getObjectIdByGUID($owner); $permissions->setElementPermissions($owner, $element_id, $level); } }