public static function resolveUserDefaultPermissionsByUser(User $user, RedBeanModel $model = null)
 {
     $defaultPermissionSettings = UserConfigurationFormAdapter::resolveAndGetDefaultPermissionSetting($user);
     $nonEveryoneGroup = UserConfigurationFormAdapter::resolveAndGetValue($user, 'defaultPermissionGroupSetting', false);
     $type = DerivedExplicitReadWriteModelPermissionsElement::resolveUserPermissionConfigurationToPermissionType($defaultPermissionSettings);
     $explicitReadWriteModelPermissions = compact('type', 'nonEveryoneGroup');
     $permissions = compact('explicitReadWriteModelPermissions');
     if ($model === null || $model instanceof OwnedSecurableItem) {
         $owner = array('id' => $user->id);
         $permissions = compact('owner', 'explicitReadWriteModelPermissions');
     }
     return $permissions;
 }
 public static function setContactModelPermissionsByContactWebForm(SecurableItem $model, ContactWebForm $contactWebForm)
 {
     if ($model instanceof SecurableItem && count($model->permissions) === 0) {
         $defaultPermission = ContactWebFormAdapter::resolveAndGetDefaultPermissionSetting($contactWebForm);
         $nonEveryoneGroup = $contactWebForm->defaultPermissionGroupSetting;
         $type = DerivedExplicitReadWriteModelPermissionsElement::resolveUserPermissionConfigurationToPermissionType($defaultPermission);
         $postData = array('explicitReadWriteModelPermissions' => compact('type', 'nonEveryoneGroup'));
         $explicitReadWritePermissions = self::resolveAndMakeExplicitReadWriteModelPermissions($postData, $model);
         $updated = ExplicitReadWriteModelPermissionsUtil::resolveExplicitReadWriteModelPermissions($model, $explicitReadWritePermissions);
         if (!$updated) {
             throw new NotSupportedException();
         }
     }
 }
 /**
  * @param int $selectedType
  * @return mixed
  */
 public static function resolveUserPermissionConfigurationToPermissionType($selectedType)
 {
     return DerivedExplicitReadWriteModelPermissionsElement::resolveUserPermissionConfigurationToPermissionType($selectedType);
 }