function handle_success($file)
{
    if (lock_exists($file)) {
        if (remove_lock($file)) {
            send_email("Uptime Detected for {$file}");
        } else {
            // could not remove lock
        }
    }
}
Exemple #2
0
<?php

global $cgi;
loader_import('cms.Workflow.Lock');
lock_init();
if (lock_exists($cgi->_collection, $cgi->_key)) {
    page_title(intl_get('Item Locked by Another User'));
    echo '<p><a href="javascript: history.go (-1)">' . intl_get('Back') . '</a></p>';
    echo template_simple(LOCK_INFO_TEMPLATE, lock_info($cgi->_collection, $cgi->_key));
    return;
} else {
    lock_add($cgi->_collection, $cgi->_key);
}
class SitestudyEditForm extends MailForm
{
    function SitestudyEditForm()
    {
        parent::MailForm();
        $this->parseSettings('inc/app/sitestudy/forms/edit/settings.php');
        global $page, $cgi;
        page_title(intl_get('Editing Case Study') . ': ' . $cgi->_key);
        loader_import('ext.phpsniff');
        $sniffer = new phpSniff();
        $this->_browser = $sniffer->property('browser');
        // include formhelp, edit panel init, and cancel handler
        page_add_script(site_prefix() . '/js/formhelp.js');
        page_add_script(CMS_JS_FORMHELP_INIT);
        page_onload('cms_init_edit_panels ()');
        page_add_script('
			function cms_cancel_unlock (f, collection, key) {
				if (arguments.length == 0) {
Exemple #3
0
                    $vals['file_3']->move('inc/app/sitewiki/data', $vals['id'] . '_' . $file_id);
                }
            }
        }
        lock_remove('sitewiki_page', $vals['id']);
        header('Location: ' . site_prefix() . '/index/sitewiki-app/show.' . $vals['id']);
        exit;
    }
}
$form = new SitewikiEditForm();
if ($form->editable && !isset($cgi->editing)) {
    if (!session_valid()) {
        global $session;
        $session->username = '';
    }
    if (lock_exists('sitewiki_page', $cgi->page)) {
        if ($cgi->break_lock == 1) {
            lock_remove('sitewiki_page', $cgi->page);
            if (!session_valid()) {
                $session->username = '******';
            }
            lock_add('sitewiki_page', $cgi->page);
        } else {
            $info = lock_info('sitewiki_page', $cgi->page);
            loader_import('saf.Date');
            $now = time();
            $then = Date::toUnix($info->expires) - 3600;
            $diff = $now - $then;
            $info->min = round($diff / 60);
            echo template_simple('locked.spt', $info);
            return;
Exemple #4
0
        $width[$field->name] = $data['fields'][$field->name]['width'] ? $data['fields'][$field->name]['width'] : 'auto';
        if (isset($rex->info['browse:' . $field->name]['length']) && strlen($tmp->{$field->name}) > $rex->info['browse:' . $field->name]['length']) {
            $tmp->{$field->name} = rtrim(substr($tmp->{$field->name}, 0, $rex->info['browse:' . $field->name]['length'] - 3)) . '...';
        }
    }
    if (!isset($row->{$rex->key})) {
        $pkeys = preg_split('/, ?/', $rex->key);
        $row->{$rex->key} = '';
        $sep = '';
        foreach ($pkeys as $pk) {
            $row->{$rex->key} .= $sep . $row->{$pk};
            $sep = '|';
        }
    }
    $res2[$row->{$rex->key}] = $tmp;
    $locks[$row->{$rex->key}] = lock_exists($cgi->collection, $row->{$rex->key});
    if ($locks[$row->{$rex->key}]) {
        $lock_info = lock_info($cgi->collection, $row->{$rex->key});
        $res2[$row->{$rex->key}]->lock_owner = $lock_info->user;
        $res2[$row->{$rex->key}]->lock_expires = $lock_info->expires;
        loader_import('cms.Filters');
    }
    if (isset($row->sitellite_access) && !session_allowed($row->sitellite_access, 'w', 'access')) {
        $editable[$row->{$rex->key}] = false;
    } elseif (isset($row->sitellite_team) && !session_allowed($row->sitellite_team, 'w', 'team')) {
        $editable[$row->{$rex->key}] = false;
    } else {
        $editable[$row->{$rex->key}] = true;
    }
}
$pg->setData($res2);
Exemple #5
0
    $parameters['align'] = 'right';
} elseif ($parameters['align'] == 'false') {
    $parameters['align'] = false;
}
if (!isset($parameters['inline'])) {
    $parameters['inline'] = false;
} else {
    $parameters['inline'] = true;
}
if (!isset($parameters['return']) && $parameters['collection'] == 'sitellite_page') {
    $parameters['return'] = site_current();
}
$parameters['return_v1'] = site_current();
loader_import('cms.Workflow.Lock');
lock_init();
if (lock_exists($parameters['collection'], $parameters['id'])) {
    $parameters['editable'] = false;
    $lock_info = lock_info($parameters['collection'], $parameters['id']);
    $parameters['lock_owner'] = $lock_info->user;
    $parameters['lock_expires'] = $lock_info->expires;
    loader_import('cms.Filters');
}
if (session_is_resource('delete') && !session_allowed('delete', 'rw', 'resource')) {
    $parameters['deletable'] = false;
}
if ($rex->isVersioned && $parameters['editable']) {
    //session_allowed ('approved', 'w', 'status')) {
    $parameters['history'] = true;
} else {
    $parameters['history'] = false;
}
Exemple #6
0
 /**
  * checkLock() helper
  *
  * @param  string resource path to check for locks
  * @return bool   true on success
  */
 function checkLock($path, $token = false)
 {
     $path = strtolower(trim($path, '/'));
     /*if (! $sitellite) {
     			// called by parent class
     			$path = trim ($this->_path (), '/');
     		}*/
     loader_import('cms.Workflow.Lock');
     lock_init();
     if (@is_dir($this->base . '/' . $path)) {
         if (lock_exists('sitellite_filesystem', $path)) {
             $info = lock_info('sitellite_filesystem', $path);
             if ($token && $token != $info->token) {
                 return false;
             }
             return array('type' => 'write', 'scope' => 'exclusive', 'depth' => 'infinite', 'owner' => $info->user, 'token' => $info->token, 'created' => strtotime($info->created), 'modified' => strtotime($info->modified), 'expires' => strtotime($info->expires));
         }
     } else {
         if (lock_exists('sitellite_filesystem', $path)) {
             $info = lock_info('sitellite_filesystem', $path);
             if ($token && $token != $info->token) {
                 return false;
             }
             return array('type' => 'write', 'scope' => 'exclusive', 'depth' => 0, 'owner' => $info->user, 'token' => $info->token, 'created' => strtotime($info->created), 'modified' => strtotime($info->modified), 'expires' => strtotime($info->expires));
         }
         // TODO: check for locks on folders as well
     }
     return false;
 }