Ejemplo n.º 1
0
 public function unsubscribeFromRecord(ServiceBase $api, array $args)
 {
     $this->requireArgs($args, array('module', 'record'));
     $bean = BeanFactory::retrieveBean($args['module'], $args['record']);
     if (empty($bean)) {
         throw new SugarApiExceptionNotFound('Could not find parent record ' . $args['record'] . ' in module ' . $args['module']);
     }
     if (!$bean->ACLAccess('view')) {
         $moduleName = null;
         if (isset($args['module'])) {
             $failed_module_strings = return_module_language($GLOBALS['current_language'], $args['module']);
             $moduleName = $failed_module_strings['LBL_MODULE_NAME'];
         }
         $args = null;
         if (!empty($moduleName)) {
             $args = array('moduleName' => $moduleName);
         }
         throw new SugarApiExceptionNotAuthorized('EXCEPTION_SUBSCRIBE_MODULE_NOT_AUTHORIZED', $args);
     }
     return Subscription::unsubscribeUserFromRecord($api->user, $bean);
 }
Ejemplo n.º 2
0
 /**
  * Associates the user to the activity, if it is a delete activity or the user can access the record. Otherwise, the
  * the user's subscription to the record is removed.
  *
  * We allow the user to see the activity on home and list views if the user has access to the bean.
  *
  * @param SugarBean $bean
  * @param User $user
  * @param bool $isADeleteActivity
  */
 protected function handleUserToBeanRelationship(SugarBean $bean, User $user, $isADeleteActivity = false)
 {
     if ($isADeleteActivity || $bean->checkUserAccess($user)) {
         $fields = $this->getChangedFieldsForUser($user, $bean);
         $this->activities_users->add($user, array('fields' => json_encode($fields)));
     } else {
         Subscription::unsubscribeUserFromRecord($user, $bean);
     }
 }