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')); }
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'); }