View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
09605Bug reportsSurvey editingpublic2015-05-08 09:16
Reporteraesteban Assigned ToDenisChenu  
PriorityhighSeverityblock 
Status closedResolutionfixed 
Product Version2.05+ 
Target Version2.05+Fixed in Version2.05+ 
Summary09605: Crash when trying to grant permission in specific survey to user without any global permission
Description

Crash when trying to grant permissions in specific survey to user without any global permission. This functionality is needed from fix to 09571 because currently a user with global survey permission can see all surveys.

We need a way to create a user and grant him permissions over specific surveys and no others.

Steps To Reproduce

1.- Create a user as admin
2.- Don't grant him any permission
3.- Go to specific survey permission window
4.- Select this user and try to add to users of this survey
5.- Click on "Set survey permissions"

Result: Crash (see attached file)

TagsNo tags attached.
Attached Files
bug-adding-user-to-survey-CDbException.html (29,495 bytes)   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0086)http://localhost/lsurveymaster/index.php/admin/surveypermission/sa/set/surveyid/369689 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>CDbException</title>

<style type="text/css">
/*<![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/
</style>
</head>

<body>
<div class="container">
	<h1>CDbException</h1>

	<p class="message">
		CDbCommand failed to execute the SQL statement: SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for integer: "survey"<br>
LINE 1: ...FROM "lime_permissions" "t" WHERE "t"."entity_id"='survey' A...<br>
                                                             ^. The SQL statement executed was: SELECT * FROM "lime_permissions" "t" WHERE "t"."entity_id"=:yp0 AND "t"."uid"=:yp1 AND "t"."entity"=:yp2 AND "t"."permission"=:yp3 LIMIT 1. Bound with :yp0='survey', :yp1='50', :yp2='369689', :yp3='surveyactivation'	</p>

	<div class="source">
		<p class="file">/usr/share/nginx/html/lsurveymaster/framework/db/CDbCommand.php(543)</p>
		<div class="code"><pre><span class="ln">531</span>         {
<span class="ln">532</span>             if($this-&gt;_connection-&gt;enableProfiling)
<span class="ln">533</span>                 Yii::endProfile('system.db.CDbCommand.query('.$this-&gt;getText().$par.')','system.db.CDbCommand.query');
<span class="ln">534</span> 
<span class="ln">535</span>             $errorInfo=$e instanceof PDOException ? $e-&gt;errorInfo : null;
<span class="ln">536</span>             $message=$e-&gt;getMessage();
<span class="ln">537</span>             Yii::log(Yii::t('yii','CDbCommand::{method}() failed: {error}. The SQL statement executed was: {sql}.',
<span class="ln">538</span>                 array('{method}'=&gt;$method, '{error}'=&gt;$message, '{sql}'=&gt;$this-&gt;getText().$par)),CLogger::LEVEL_ERROR,'system.db.CDbCommand');
<span class="ln">539</span> 
<span class="ln">540</span>             if(YII_DEBUG)
<span class="ln">541</span>                 $message.='. The SQL statement executed was: '.$this-&gt;getText().$par;
<span class="ln">542</span> 
<span class="error"><span class="ln error-ln">543</span>             throw new CDbException(Yii::t('yii','CDbCommand failed to execute the SQL statement: {error}',
</span><span class="ln">544</span>                 array('{error}'=&gt;$message)),(int)$e-&gt;getCode(),$errorInfo);
<span class="ln">545</span>         }
<span class="ln">546</span>     }
<span class="ln">547</span> 
<span class="ln">548</span>     /**
<span class="ln">549</span>      * Builds a SQL SELECT statement from the given query specification.
<span class="ln">550</span>      * @param array $query the query specification in name-value pairs. The following
<span class="ln">551</span>      * query options are supported: {@link select}, {@link distinct}, {@link from},
<span class="ln">552</span>      * {@link where}, {@link join}, {@link group}, {@link having}, {@link order},
<span class="ln">553</span>      * {@link limit}, {@link offset} and {@link union}.
<span class="ln">554</span>      * @throws CDbException if "from" key is not present in given query parameter
<span class="ln">555</span>      * @return string the SQL statement
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tbody><tr class="trace core collapsed">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/db/CDbCommand.php(415): <strong>CDbCommand</strong>-&gt;<strong>queryInternal</strong>("fetch", array(2), array())				</div>

				<div class="code"><pre><span class="ln">410</span>      * @return mixed the first row (in terms of an array) of the query result, false if no result.
<span class="ln">411</span>      * @throws CException execution failed
<span class="ln">412</span>      */
<span class="ln">413</span>     public function queryRow($fetchAssociative=true,$params=array())
<span class="ln">414</span>     {
<span class="error"><span class="ln error-ln">415</span>         return $this-&gt;queryInternal('fetch',$fetchAssociative ? $this-&gt;_fetchMode : PDO::FETCH_NUM, $params);
</span><span class="ln">416</span>     }
<span class="ln">417</span> 
<span class="ln">418</span>     /**
<span class="ln">419</span>      * Executes the SQL statement and returns the value of the first column in the first row of data.
<span class="ln">420</span>      * This is a convenient method of {@link query} when only a single scalar
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/db/ar/CActiveRecord.php(1351): <strong>CDbCommand</strong>-&gt;<strong>queryRow</strong>()				</div>

				<div class="code"><pre><span class="ln">1346</span>         if(empty($criteria-&gt;with))
<span class="ln">1347</span>         {
<span class="ln">1348</span>             if(!$all)
<span class="ln">1349</span>                 $criteria-&gt;limit=1;
<span class="ln">1350</span>             $command=$this-&gt;getCommandBuilder()-&gt;createFindCommand($this-&gt;getTableSchema(),$criteria,$this-&gt;getTableAlias());
<span class="error"><span class="ln error-ln">1351</span>             return $all ? $this-&gt;populateRecords($command-&gt;queryAll(), true, $criteria-&gt;index) : $this-&gt;populateRecord($command-&gt;queryRow());
</span><span class="ln">1352</span>         }
<span class="ln">1353</span>         else
<span class="ln">1354</span>         {
<span class="ln">1355</span>             $finder=$this-&gt;getActiveFinder($criteria-&gt;with);
<span class="ln">1356</span>             return $finder-&gt;query($criteria,$all);
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/application/models/LSActiveRecord.php(67): <strong>CActiveRecord</strong>-&gt;<strong>query</strong>(CDbCriteria, false)				</div>

				<div class="code"><pre><span class="ln">62</span>      */
<span class="ln">63</span>     protected function query($criteria, $all = false, $asAR = true)
<span class="ln">64</span>     {
<span class="ln">65</span>         if ($asAR === true)
<span class="ln">66</span>         {
<span class="error"><span class="ln error-ln">67</span>             return parent::query($criteria, $all);
</span><span class="ln">68</span>         } else
<span class="ln">69</span>         {
<span class="ln">70</span>             $this-&gt;beforeFind();
<span class="ln">71</span>             $this-&gt;applyScopes($criteria);
<span class="ln">72</span>             if (!$all)
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/db/ar/CActiveRecord.php(1519): <strong>LSActiveRecord</strong>-&gt;<strong>query</strong>(CDbCriteria)				</div>

				<div class="code"><pre><span class="ln">1514</span>     public function findByAttributes($attributes,$condition='',$params=array())
<span class="ln">1515</span>     {
<span class="ln">1516</span>         Yii::trace(get_class($this).'.findByAttributes()','system.db.ar.CActiveRecord');
<span class="ln">1517</span>         $prefix=$this-&gt;getTableAlias(true).'.';
<span class="ln">1518</span>         $criteria=$this-&gt;getCommandBuilder()-&gt;createColumnCriteria($this-&gt;getTableSchema(),$attributes,$condition,$params,$prefix);
<span class="error"><span class="ln error-ln">1519</span>         return $this-&gt;query($criteria);
</span><span class="ln">1520</span>     }
<span class="ln">1521</span> 
<span class="ln">1522</span>     /**
<span class="ln">1523</span>      * Finds all active records that have the specified attribute values.
<span class="ln">1524</span>      * See {@link find()} for detailed explanation about $condition and $params.
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/application/models/Permission.php(504): <strong>CActiveRecord</strong>-&gt;<strong>findByAttributes</strong>(array("entity_id" =&gt; "survey", "uid" =&gt; "50", "entity" =&gt; "369689", "permission" =&gt; "surveyactivation"))				</div>

				<div class="code"><pre><span class="ln">499</span>         }
<span class="ln">500</span>         
<span class="ln">501</span>         if ($aPermissionCache[0]['global'][$iUserID]['superadmin']['read_p']) return true;
<span class="ln">502</span>         if (!isset($aPermissionCache[$iEntityID][$sEntityName][$iUserID][$sPermission][$sCRUD]))
<span class="ln">503</span>         {
<span class="error"><span class="ln error-ln">504</span>             $query = $this-&gt;findByAttributes(array("entity_id"=&gt; $iEntityID, "uid"=&gt; $iUserID, "entity"=&gt;$sEntityName, "permission"=&gt;$sPermission));
</span><span class="ln">505</span>             $bPermission = is_null($query) ? array() : $query-&gt;attributes;
<span class="ln">506</span>             if (!isset($bPermission[$sCRUD]) || $bPermission[$sCRUD]==0)
<span class="ln">507</span>             {
<span class="ln">508</span>                 $bPermission=false;
<span class="ln">509</span>             }
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/application/controllers/admin/surveypermission.php(456): <strong>Permission</strong>-&gt;<strong>hasPermission</strong>("survey", "369689", "surveyactivation", "update", ...)				</div>

				<div class="code"><pre><span class="ln">451</span>                         if (!($sPermissionKey=='survey' &amp;&amp; $sCRUDKey=='read'))
<span class="ln">452</span>                         {
<span class="ln">453</span>                             $usersummary .= "&lt;input type=\"checkbox\"  class=\"checkboxbtn\" name='perm_{$sPermissionKey}_{$sCRUDKey}' ";
<span class="ln">454</span>                             if($action=='setsurveysecurity')
<span class="ln">455</span>                             {
<span class="error"><span class="ln error-ln">456</span>                                 if(Permission::model()-&gt;hasPermission('survey',$surveyid,$sPermissionKey,$sCRUDKey,$postuserid))
</span><span class="ln">457</span>                                 {
<span class="ln">458</span>                                     $usersummary .= ' checked="checked" ';// User have this permission set for this survey
<span class="ln">459</span> 
<span class="ln">460</span>                                 }
<span class="ln">461</span>                                 elseif(Permission::model()-&gt;hasSurveyPermission( $surveyid,$sPermissionKey,$sCRUDKey,$postuserid))
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>surveypermission</strong>-&gt;<strong>set</strong>("369689")				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/web/actions/CAction.php(108): <strong>ReflectionMethod</strong>-&gt;<strong>invokeArgs</strong>(surveypermission, array("369689"))				</div>

				<div class="code"><pre><span class="ln">103</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">104</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">105</span>             else
<span class="ln">106</span>                 return false;
<span class="ln">107</span>         }
<span class="error"><span class="ln error-ln">108</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">109</span>         return true;
<span class="ln">110</span>     }
<span class="ln">111</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/application/core/Survey_Common_Action.php(99): <strong>CAction</strong>-&gt;<strong>runWithParamsInternal</strong>(surveypermission, ReflectionMethod, array("q" =&gt; "/lsurveymaster/index.php/admin/surveypermission/sa/set/surveyid/...", "surveyid" =&gt; "369689", "sa" =&gt; "set", "iSurveyId" =&gt; "369689", ...))				</div>

				<div class="code"><pre><span class="ln">094</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">095</span>         }
<span class="ln">096</span> 
<span class="ln">097</span>         // We're all good to go, let's execute it
<span class="ln">098</span>         // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
<span class="error"><span class="ln error-ln">099</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">100</span>     }
<span class="ln">101</span> 
<span class="ln">102</span>     /**
<span class="ln">103</span>     * Some functions have different parameters, which are just an alias of the
<span class="ln">104</span>     * usual parameters we're getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-&gt;<strong>runWithParams</strong>(array("q" =&gt; "/lsurveymaster/index.php/admin/surveypermission/sa/set/surveyid/...", "surveyid" =&gt; "369689", "sa" =&gt; "set"))				</div>

				<div class="code"><pre><span class="ln">303</span>     {
<span class="ln">304</span>         $priorAction=$this-&gt;_action;
<span class="ln">305</span>         $this-&gt;_action=$action;
<span class="ln">306</span>         if($this-&gt;beforeAction($action))
<span class="ln">307</span>         {
<span class="error"><span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">310</span>             else
<span class="ln">311</span>                 $this-&gt;afterAction($action);
<span class="ln">312</span>         }
<span class="ln">313</span>         $this-&gt;_action=$priorAction;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(surveypermission)				</div>

				<div class="code"><pre><span class="ln">281</span>      * @see runAction
<span class="ln">282</span>      */
<span class="ln">283</span>     public function runActionWithFilters($action,$filters)
<span class="ln">284</span>     {
<span class="ln">285</span>         if(empty($filters))
<span class="error"><span class="ln error-ln">286</span>             $this-&gt;runAction($action);
</span><span class="ln">287</span>         else
<span class="ln">288</span>         {
<span class="ln">289</span>             $priorAction=$this-&gt;_action;
<span class="ln">290</span>             $this-&gt;_action=$action;
<span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(surveypermission, array())				</div>

				<div class="code"><pre><span class="ln">260</span>         {
<span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
<span class="ln">262</span>                 $parent=Yii::app();
<span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">264</span>             {
<span class="error"><span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
<span class="ln">267</span>             }
<span class="ln">268</span>         }
<span class="ln">269</span>         else
<span class="ln">270</span>             $this-&gt;missingAction($actionID);
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#12			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/application/controllers/AdminController.php(169): <strong>CController</strong>-&gt;<strong>run</strong>("surveypermission")				</div>

				<div class="code"><pre><span class="ln">164</span>                     $this-&gt;redirect(array('/admin/authentication/sa/login'));
<span class="ln">165</span>                 }
<span class="ln">166</span>                 
<span class="ln">167</span>             }
<span class="ln">168</span> 
<span class="error"><span class="ln error-ln">169</span>             return parent::run($action);
</span><span class="ln">170</span>     }
<span class="ln">171</span> 
<span class="ln">172</span>     /**
<span class="ln">173</span>     * Routes all the actions to their respective places
<span class="ln">174</span>     *
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-&gt;<strong>run</strong>("surveypermission")				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&gt;_controller;
<span class="ln">280</span>             $this-&gt;_controller=$controller;
<span class="ln">281</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
</span><span class="ln">283</span>             $this-&gt;_controller=$oldController;
<span class="ln">284</span>         }
<span class="ln">285</span>         else
<span class="ln">286</span>             throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
<span class="ln">287</span>                 array('{route}'=&gt;$route===''?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#14			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("admin/surveypermission/sa/set")				</div>

				<div class="code"><pre><span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
<span class="ln">137</span>                 $_GET[$name]=$value;
<span class="ln">138</span>         }
<span class="ln">139</span>         else
<span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">141</span>         $this-&gt;runController($route);
</span><span class="ln">142</span>     }
<span class="ln">143</span> 
<span class="ln">144</span>     /**
<span class="ln">145</span>      * Registers the core application components.
<span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#15			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/framework/base/CApplication.php(180): <strong>CWebApplication</strong>-&gt;<strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">175</span>     public function run()
<span class="ln">176</span>     {
<span class="ln">177</span>         if($this-&gt;hasEventHandler('onBeginRequest'))
<span class="ln">178</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">179</span>         register_shutdown_function(array($this,'end'),0,false);
<span class="error"><span class="ln error-ln">180</span>         $this-&gt;processRequest();
</span><span class="ln">181</span>         if($this-&gt;hasEventHandler('onEndRequest'))
<span class="ln">182</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">183</span>     }
<span class="ln">184</span> 
<span class="ln">185</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#16			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/usr/share/nginx/html/lsurveymaster/index.php(200): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">195</span>         die (sprintf('%s should be writable by the webserver (755 or 775).', $runtimePath));
<span class="ln">196</span>     }
<span class="ln">197</span> }
<span class="ln">198</span> 
<span class="ln">199</span> 
<span class="error"><span class="ln error-ln">200</span> Yii::createApplication('LSYii_Application', $config)-&gt;run();
</span><span class="ln">201</span> 
<span class="ln">202</span> /* End of file index.php */
<span class="ln">203</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</tbody></table>
	</div>

	<div class="version">
		2015-04-16 00:36:41 nginx/1.4.6 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.15	</div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/
</script>



<script type="text/javascript">
/*<![CDATA[*/
if(typeof(console)=='object')
{
	console.group("Application Log");
	console.log("[00:36:40.357][trace][system.db.ar.CActiveRecord] Plugin.findAllByAttributes()");
	console.log("[00:36:40.358][trace][system.db.CDbConnection] Opening DB connection");
	console.log("[00:36:40.382][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_plugins\" \"t\" WHERE \"t\".\"active\"=:yp0. Bound with :yp0=1");
	console.log("[00:36:40.398][trace][system.db.ar.CActiveRecord] SettingGlobal.findAll()");
	console.log("[00:36:40.399][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_settings_global\" \"t\"");
	console.log("[00:36:40.499][trace][system.db.ar.CActiveRecord] SettingGlobal.findByPk()");
	console.log("[00:36:40.501][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_settings_global\" \"t\" WHERE \"t\".\"stg_name\"=\'updatelastcheck\' LIMIT 1");
	console.log("[00:36:40.515][trace][system.db.ar.CActiveRecord] Survey.findByPk()");
	console.log("[00:36:40.516][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_surveys\" \"t\" WHERE \"t\".\"sid\"=369689 LIMIT 1");
	console.log("[00:36:40.526][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()");
	console.log("[00:36:40.527][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_permissions\" \"t\" WHERE \"t\".\"entity_id\"=:yp0 AND \"t\".\"entity\"=:yp1 AND \"t\".\"uid\"=:yp2 AND \"t\".\"permission\"=:yp3 LIMIT 1. Bound with :yp0=0, :yp1=\'global\', :yp2=1, :yp3=\'superadmin\'");
	console.log("[00:36:40.533][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM lime_users ORDER BY uid");
	console.log("[00:36:40.538][trace][system.db.CDbCommand] Querying SQL: select users_name from lime_users where uid=:uid. Bound with :uid=\'50\'");
	console.log("[00:36:41.082][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()");
	console.log("[00:36:41.083][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_permissions\" \"t\" WHERE \"t\".\"entity_id\"=:yp0 AND \"t\".\"entity\"=:yp1 AND \"t\".\"uid\"=:yp2 AND \"t\".\"permission\"=:yp3 LIMIT 1. Bound with :yp0=0, :yp1=\'global\', :yp2=\'50\', :yp3=\'superadmin\'");
	console.log("[00:36:41.085][trace][system.db.ar.CActiveRecord] Permission.findByAttributes()");
	console.log("[00:36:41.087][trace][system.db.CDbCommand] Querying SQL: SELECT * FROM \"lime_permissions\" \"t\" WHERE \"t\".\"entity_id\"=:yp0 AND \"t\".\"uid\"=:yp1 AND \"t\".\"entity\"=:yp2 AND \"t\".\"permission\"=:yp3 LIMIT 1. Bound with :yp0=\'survey\', :yp1=\'50\', :yp2=\'369689\', :yp3=\'surveyactivation\'");
	console.groupEnd();
}
/*]]>*/
</script></body></html>
Bug heat4
Complete LimeSurvey version number (& build)6875f974c5310dbda4237f8aa733
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database type & versionPostgresql 9.3
Server OS (if known)Ubuntu 14.04
Webserver software & version (if known)Nginx 1.4.6
PHP Version5.5.9

Relationships

related to 09571 closedDenisChenu Permission Survey : set to whole : no edit on another survey 

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2015-04-16 09:00

developer   ~32009

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=15109

DenisChenu

DenisChenu

2015-04-16 09:12

developer   ~32011

Fix committed to 2.06 branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=15110

c_schmitz

c_schmitz

2015-05-08 09:16

administrator   ~32119

2.05+ Build 150508 released

Related Changesets

LimeSurvey: master 9f2fce56

2015-04-16 07:00:30

DenisChenu

Details Diff
Fixed issue 09605: Crash when trying to grant permission in specific survey to user without any global permission
Dev: invalid order in Permission::model()->hasPermission ...
Affected Issues
09605
mod - application/controllers/admin/surveypermission.php Diff File

LimeSurvey: 2.06 ad14f8eb

2015-04-16 07:12:36

DenisChenu

Details Diff
Fixed issue 09605: Crash when trying to grant permission in specific survey to user without any global permission
Dev: bad order
Affected Issues
09605
mod - application/controllers/admin/surveypermission.php Diff File

Issue History

Date Modified Username Field Change
2015-04-16 01:10 aesteban New Issue
2015-04-16 01:10 aesteban Status new => assigned
2015-04-16 01:10 aesteban Assigned To => DenisChenu
2015-04-16 01:10 aesteban File Added: bug-adding-user-to-survey-CDbException.html
2015-04-16 01:11 aesteban Relationship added related to 09571
2015-04-16 09:00 DenisChenu Changeset attached => LimeSurvey master 9f2fce56
2015-04-16 09:00 DenisChenu Note Added: 32009
2015-04-16 09:00 DenisChenu Resolution open => fixed
2015-04-16 09:12 DenisChenu Changeset attached => LimeSurvey 2.06 ad14f8eb
2015-04-16 09:12 DenisChenu Note Added: 32011
2015-04-16 09:13 DenisChenu Status assigned => resolved
2015-04-16 09:13 DenisChenu Fixed in Version => 2.05+
2015-05-08 09:16 c_schmitz Note Added: 32119
2015-05-08 09:16 c_schmitz Status resolved => closed
2019-11-01 17:25 c_schmitz Category Survey design => Survey editing