Esempio n. 1
0
function ciniki_library_checkAccess(&$ciniki, $business_id, $method)
{
    //
    // Check if the business is active and the module is enabled
    //
    ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'checkModuleAccess');
    $rc = ciniki_businesses_checkModuleAccess($ciniki, $business_id, 'ciniki', 'library');
    if ($rc['stat'] != 'ok') {
        return $rc;
    }
    $modules = $rc['modules'];
    if (!isset($rc['ruleset'])) {
        return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.1', 'msg' => 'No permissions granted'));
    }
    //
    // Sysadmins are allowed full access
    //
    if (($ciniki['session']['user']['perms'] & 0x1) == 0x1) {
        return array('stat' => 'ok', 'modules' => $modules);
    }
    //
    // Users who are an owner or employee of a business can see the business alerts
    //
    $strsql = "SELECT business_id, user_id FROM ciniki_business_users " . "WHERE business_id = '" . ciniki_core_dbQuote($ciniki, $business_id) . "' " . "AND user_id = '" . ciniki_core_dbQuote($ciniki, $ciniki['session']['user']['id']) . "' " . "AND package = 'ciniki' " . "AND status = 10 " . "AND (permission_group = 'owners' OR permission_group = 'employees' OR permission_group = 'resellers' ) " . "";
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery');
    $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.businesses', 'user');
    if ($rc['stat'] != 'ok') {
        return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.2', 'msg' => 'Access denied.'));
    }
    //
    // If the user has permission, return ok
    //
    if (isset($rc['rows']) && isset($rc['rows'][0]) && $rc['rows'][0]['user_id'] > 0 && $rc['rows'][0]['user_id'] == $ciniki['session']['user']['id']) {
        return array('stat' => 'ok', 'modules' => $modules);
    }
    //
    // By default fail
    //
    return array('stat' => 'fail', 'err' => array('code' => 'ciniki.library.3', 'msg' => 'Access denied'));
}
Esempio n. 2
0
function ciniki_artistprofiles_cron_jobs(&$ciniki)
{
    ciniki_cron_logMsg($ciniki, 0, array('code' => '0', 'msg' => 'Checking for artistprofiles jobs', 'severity' => '5'));
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbQuote');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'core', 'private', 'dbHashQuery');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'businesses', 'private', 'checkModuleAccess');
    ciniki_core_loadMethod($ciniki, 'ciniki', 'artistprofiles', 'private', 'dropboxDownload');
    //
    // Get the list of businesses that have artistprofiles enables and dropbox flag
    //
    $strsql = "SELECT business_id " . "FROM ciniki_business_modules " . "WHERE package = 'ciniki' " . "AND module = 'artistprofiles' " . "AND (flags&0x01) = 1 " . "";
    $rc = ciniki_core_dbHashQuery($ciniki, $strsql, 'ciniki.sapos', 'item');
    if ($rc['stat'] != 'ok') {
        return array('stat' => 'fail', 'err' => array('pkg' => 'ciniki', 'code' => '2880', 'msg' => 'Unable to get list of businesses with artist profiles', 'err' => $rc['err']));
    }
    if (!isset($rc['rows'])) {
        return array('stat' => 'ok');
    }
    $businesses = $rc['rows'];
    foreach ($businesses as $business) {
        //
        // Load business modules
        //
        $rc = ciniki_businesses_checkModuleAccess($ciniki, $business['business_id'], 'ciniki', 'artistprofiles');
        if ($rc['stat'] != 'ok') {
            ciniki_cron_logMsg($ciniki, $business['business_id'], array('code' => '2879', 'msg' => 'ciniki.artistprofiles not configured', 'severity' => 30, 'err' => $rc['err']));
            continue;
        }
        ciniki_cron_logMsg($ciniki, $business['business_id'], array('code' => '0', 'msg' => 'Updating artistprofiles from dropbox', 'severity' => '10'));
        //
        // Update the business artistprofiles from dropbox
        //
        $rc = ciniki_artistprofiles_dropboxDownload($ciniki, $business['business_id']);
        if ($rc['stat'] != 'ok') {
            ciniki_cron_logMsg($ciniki, $business['business_id'], array('code' => '2878', 'msg' => 'Unable to update artistprofiles', 'severity' => 50, 'err' => $rc['err']));
            continue;
        }
    }
    return array('stat' => 'ok');
}