Exemple #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;
 }
Exemple #2
0
 public function _on_updated()
 {
     // Invalidate topic in cache to refresh all views
     // TODO: Do this only on status changes
     $topic = midcom_db_topic::get_cached($this->topic);
     if ($topic->guid) {
         $_MIDCOM->cache->invalidate($topic->guid);
     }
     if (isset($GLOBALS['disable_activitystream'])) {
         return true;
     }
     if ($_MIDCOM->auth->request_sudo('midcom')) {
         $actor = midcom_db_person::get_cached($_MIDGARD['user']);
         $activity = new midcom_helper_activitystream_activity_dba();
         $activity->target = $this->guid;
         $activity->application = 'fi.kilonkipinat.account';
         $activity->actor = $actor->id;
         $activity->verb = 'http://activitystrea.ms/schema/1.0/post';
         if ($this->id == $actor->id) {
             $activity->summary = sprintf('%s muokkasi omaa tunnustaan', $actor->name);
         } else {
             $tmp_name = $this->firstname . ' ' . $this->lastname;
             $activity->summary = sprintf('%s muokkasi %s:n tunnusta', $actor->name, $tmp_name);
         }
         $activity->create();
         $_MIDCOM->auth->drop_sudo();
     }
     return true;
 }
Exemple #3
0
 public function _on_watched_operation($operation, $object)
 {
     if (!$object->_use_activitystream) {
         // Activity Log not used for this object
         return;
     }
     // Create an activity log entry
     if (!midcom::get('auth')->request_sudo('midcom.helper.activitystream')) {
         // Not allowed to create activity logs
         return;
     }
     $activity = new midcom_helper_activitystream_activity_dba();
     $activity->target = $object->guid;
     if ($object->_activitystream_verb) {
         $activity->verb = $object->_activitystream_verb;
     } else {
         $activity->verb = midcom_helper_activitystream_activity_dba::operation_to_verb($operation);
     }
     if (!$activity->verb) {
         debug_add('Cannot generate a verb for the activity, skipping');
         midcom::get('auth')->drop_sudo();
         return;
     }
     static $handled_targets = array();
     if (isset($handled_targets["{$activity->target}_{$activity->actor}"])) {
         // We have already created an entry for this object in this request, skip
         return;
     }
     if ($object->_rcs_message) {
         $activity->summary = $object->_rcs_message;
     }
     if (midcom::get('auth')->user) {
         $actor = midcom::get('auth')->user->get_storage();
         $activity->actor = $actor->id;
     }
     $activity->application = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_COMPONENT);
     if ($activity->create()) {
         $handled_targets["{$activity->target}_{$activity->actor}"] = true;
     }
     midcom::get('auth')->drop_sudo();
 }
Exemple #4
0
 public function _on_deleted()
 {
     $this->_invalidate_person_cache();
     if (!midcom::get('auth')->request_sudo('midcom')) {
         return;
     }
     // Create an Activity Log entry for the membership addition
     try {
         $actor = midcom_db_person::get_cached($this->uid);
         $target = midcom_db_group::get_cached($this->gid);
     } catch (midcom_error $e) {
         $e->log();
         return;
     }
     $activity = new midcom_helper_activitystream_activity_dba();
     $activity->target = $target->guid;
     $activity->actor = $actor->id;
     $activity->verb = 'http://community-equity.org/schema/1.0/leave';
     if (midcom::get('auth')->is_valid_user() && $actor->guid == midcom::get('auth')->user->guid) {
         $activity->summary = sprintf(midcom::get('i18n')->get_string('%s left group %s', 'midcom'), $actor->name, $target->official);
     } else {
         $activity->summary = sprintf(midcom::get('i18n')->get_string('%s was removed from group %s', 'midcom'), $actor->name, $target->official);
     }
     $activity->create();
     midcom::get('auth')->drop_sudo();
 }