Esempio n. 1
0
 public function _on_updated()
 {
     // Invalidate topic in cache to refresh all views
     // TODO: Do this only on status changes
     if (isset($GLOBALS['disable_activitystream'])) {
         return true;
     }
     if ($_MIDCOM->auth->request_sudo('midcom')) {
         // This is here because creating an object calls create and update..... and we don't want duplicate entry's
         $qb = midcom_helper_activitystream_activity_dba::new_query_builder();
         $qb->set_limit(1);
         $qb->add_constraint('application', '=', 'fi.kilonkipinat.forms');
         $qb->add_constraint('target', '=', $this->guid);
         $groups = $qb->execute();
         if ($groups && is_array($groups) && count($groups) > 0) {
             $new_object = false;
         } else {
             $new_object = true;
         }
         $actor = midcom_db_person::get_cached($_MIDGARD['user']);
         $activity = new midcom_helper_activitystream_activity_dba();
         $activity->target = $this->guid;
         $activity->application = 'fi.kilonkipinat.forms';
         $activity->actor = $actor->id;
         $activity->verb = 'http://activitystrea.ms/schema/1.0/post';
         if ($new_object) {
             $activity->summary = sprintf('%s loi kulukorvauslomakkeen', $actor->name);
         } else {
             $activity->summary = sprintf('%s muokkasi kulukorvauslomaketta', $actor->name);
         }
         $activity->create();
         $_MIDCOM->auth->drop_sudo();
     }
     return true;
 }
Esempio n. 2
0
 if (in_array($result->target, $valid_targets)) {
     continue;
 }
 if (in_array($result->target, $invalid_targets)) {
     continue;
 }
 try {
     $object = midcom::get('dbfactory')->get_object_by_guid($result->target);
     $valid_targets[] = $object->guid;
 } catch (midcom_error $e) {
     if (midcom_connection::get_error() === MGD_ERR_OBJECT_DELETED) {
         $valid_targets[] = $result->target;
     } else {
         if (midcom_connection::get_error() === MGD_ERR_OBJECT_PURGED || midcom_connection::get_error() === MGD_ERR_NOT_EXISTS) {
             $invalid_targets[] = $result->target;
             $delete_qb = midcom_helper_activitystream_activity_dba::new_query_builder();
             $delete_qb->add_constraint('target', '=', $result->target);
             $to_delete = $delete_qb->execute();
             if (sizeof($to_delete) == 0) {
                 continue;
             }
             echo "Deleting " . sizeof($to_delete) . " entries for purged target " . $result->target . " \n";
             flush();
             foreach ($to_delete as $entry) {
                 if (!$entry->delete()) {
                     echo 'ERROR: Deleting entry ' . $entry->guid . ' failed: ' . midcom_connection::get_error_string() . " \n";
                 } else {
                     $entry->purge();
                 }
             }
         } else {
Esempio n. 3
0
 static function get_by_user(midcom_core_user $user, $limit = 20, $offset = 0)
 {
     $actor = $user->get_storage();
     $qb = midcom_helper_activitystream_activity_dba::new_query_builder();
     $qb->add_constraint('actor', '=', $actor->id);
     $qb->add_order('metadata.created', 'DESC');
     $qb->set_limit($limit);
     $qb->set_offset($offset);
     return $qb->execute();
 }