Example #1
0
function savereport_POST(Web &$w)
{
    $w->Report->navigation($w, "Create Report");
    // get type of statement: select/insert/update/delete
    $_POST['sqltype'] = $w->Report->getSQLStatementType($_POST['report_code']);
    // insert report into database
    $report = new Report($w);
    $report->fill($_POST);
    $report->insert();
    // if insert successful, make creator a MEMBER of this report
    if ($report->id) {
        $arr['report_id'] = $report->id;
        $arr['user_id'] = $w->session('user_id');
        $mem = new ReportMember($w);
        $mem->fill($arr);
        $mem->insert();
    }
    $w->msg("Report created", "/report/index/");
}
Example #2
0
function updatemembers_POST(Web &$w)
{
    $arrdb = array();
    $arrdb['report_id'] = $_REQUEST['report_id'];
    $arrdb['role'] = $_REQUEST['role'];
    $arrdb['is_deleted'] = 0;
    $member = $_REQUEST['member'];
    // for each selected member, complete population of input array
    $arrdb['user_id'] = $member;
    // find member against report ID
    $mem = $w->Report->getReportMember($arrdb['report_id'], $arrdb['user_id']);
    // if no membership, create it, otherwise update and continue
    if (!$mem) {
        $mem = new ReportMember($w);
        $mem->fill($arrdb);
        $mem->insert();
    } else {
        $mem->fill($arrdb);
        $mem->update();
    }
    // return
    $w->msg("Member Group updated", "/report/edit/" . $arrdb['report_id'] . "#members");
}
Example #3
0
function edit_POST(Web $w)
{
    $p = $w->pathMatch("id");
    $report = !empty($p['id']) ? $w->Report->getReport($p['id']) : new Report($w);
    if (!empty($p['id']) && empty($report->id)) {
        $w->error("Report not found", "/report");
    }
    // Check access rights
    // If user is editing, we need to check multiple things, detailed in the helper function
    if (!empty($report->id)) {
        // Get the report member object for the logged in user
        $member = $w->Report->getReportMember($report->id, $w->Auth->user()->id);
        // Check if user can edit this report
        if (!$w->Report->canUserEditReport($report, $member)) {
            $w->error("You do not have access to this report", "/report");
        }
    } else {
        // If we're creating a report, check that the user has rights
        if ($w->Auth->user()->is_admin == 0 and !$w->Auth->user()->hasAnyRole(array('report_admin', 'report_editor'))) {
            $w->error("You do not have create report permissions", "/report");
        }
    }
    // Insert or Update
    $report->fill($_POST);
    // Force select statements only
    $report->sqltype = "select";
    $report_connection_id = $w->request("report_connection_id");
    $report->report_connection_id = intval($report_connection_id);
    $response = $report->insertOrUpdate();
    // Handle the response
    if ($response === true) {
        // Add user to report members as owner if this is a new report
        if (empty($p['id'])) {
            $report_member = new ReportMember($w);
            $report_member->report_id = $report->id;
            $report_member->user_id = $w->Auth->user()->id;
            $report_member->role = "OWNER";
            $report_member->insert();
        }
        $w->msg("Report " . ($p['id'] ? "updated" : "created"), "/report/edit/{$report->id}");
    } else {
        $w->errorMessage($report, "Report", $response, $p['id'] ? true : false, "/report" . (!empty($account->id) ? "/edit/{$account->id}" : ""));
    }
    // OLD CODE - REDUNDANT, KEEPING FOR FEED REFERENCE
    /*        
            
    	if (!array_key_exists("is_approved",$_REQUEST))
    	$_REQUEST['is_approved'] = 0;
    
    	// if there is a report ID in the URL ...
    	if ($p['id']) {
    		// get report details
    		$rep = $w->Report->getReportInfo($p['id']);
    
    		// if report exists, update it
    		if ($rep) {
    			$_POST['sqltype'] = $w->Report->getSQLStatementType($_POST['report_code']);
    			$rep->fill($_POST);
                            $rep->report_connection_id = intval($_POST["report_connection_id"]);
    			$rep->update();
    			$repmsg = "Report updated.";
    
    			// check if there is a feed associated with this report
    			$feed = $w->Report->getFeedInfobyReportId($rep->id);
    			if ($feed) {
    				// if feed exists, need to reevaluate the URL in case of changes in the report parameters
    				$elements = $rep->getReportCriteria();
    
    				if ($elements) {
    					foreach ($elements as $element) {
    						if (($element[0] != "Description") && ($element[2] != ""))
    						$query .= $element[2] . "=<value>&";
    					}
    				}
    
    				$query = rtrim($query,"&");
    
    				// use existing key to reevaluate feed URL
    				$feedurl = $w->localUrl("/report/feed/?key=" . $feed->key . "&" . $query);
    
    				// update feed URL
    				$feed->url = $feedurl;
    				$feed->update();
    			}
    		}
    		else {
    			$repmsg = "Report does not exist";
    		}
    	}
    	else {
    		$repmsg = "Report does not exist";
    	}
    
    	// return
    	$w->msg($repmsg,"/report/viewreport/".$rep->id);
    */
}