View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
18327Bug reportsSurvey participants (Tokens)public2022-08-29 12:55
ReporterShamouda Assigned Toollehar  
PrioritynoneSeverityminor 
Status feedbackResolutionopen 
Summary18327: The option in the reminder sending screen should be greyed out for anonymized surveys
Description

The option in the reminder sending screen should be not usable and greyed out when in an anonymized survey.

Steps To Reproduce

Steps to reproduce

(Replace this text with detailed step-by-step instructions on how to reproduce the issue)

Expected result

(Write here what you expected to happen)

Actual result

(Write here what happened instead)

TagsNo tags attached.
Attached Files
CDbException.html (30,805 bytes)   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" data-lt-installed="true" 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">
		La relation « responses » définie dans la classe active record « 
TokenDynamic » a une clef étrangère « token » invalide. Cette colonne 
n'existe pas dans la table « survey_717329 ».	</p>

	<div class="source">
		<p class="file">/limeservice/instances/2/limesurvey/framework/db/ar/CActiveFinder.php(1103)</p>
		<div class="code"><pre><span class="ln">1091</span>         $joins=array();
<span class="ln">1092</span>         if(is_string($fks))
<span class="ln">1093</span>             $fks=preg_split('/\s*,\s*/',$fks,-1,PREG_SPLIT_NO_EMPTY);
<span class="ln">1094</span>         foreach($fks as $i=&gt;$fk)
<span class="ln">1095</span>         {
<span class="ln">1096</span>             if(!is_int($i))
<span class="ln">1097</span>             {
<span class="ln">1098</span>                 $pk=$fk;
<span class="ln">1099</span>                 $fk=$i;
<span class="ln">1100</span>             }
<span class="ln">1101</span> 
<span class="ln">1102</span>             if(!isset($fke-&gt;_table-&gt;columns[$fk]))
<span class="error"><span class="ln error-ln">1103</span>                 throw new CDbException(Yii::t('yii','The relation "{relation}" in active record class "{class}" is specified with an invalid foreign key "{key}". There is no such column in the table "{table}".',
</span><span class="ln">1104</span>                     array('{class}'=&gt;get_class($parent-&gt;model), '{relation}'=&gt;$this-&gt;relation-&gt;name, '{key}'=&gt;$fk, '{table}'=&gt;$fke-&gt;_table-&gt;name)));
<span class="ln">1105</span> 
<span class="ln">1106</span>             if(is_int($i))
<span class="ln">1107</span>             {
<span class="ln">1108</span>                 if(isset($fke-&gt;_table-&gt;foreignKeys[$fk]) &amp;&amp; $schema-&gt;compareTableNames($pke-&gt;_table-&gt;rawName, $fke-&gt;_table-&gt;foreignKeys[$fk][0]))
<span class="ln">1109</span>                     $pk=$fke-&gt;_table-&gt;foreignKeys[$fk][1];
<span class="ln">1110</span>                 else // FK constraints undefined
<span class="ln">1111</span>                 {
<span class="ln">1112</span>                     if(is_array($pke-&gt;_table-&gt;primaryKey)) // composite PK
<span class="ln">1113</span>                         $pk=$pke-&gt;_table-&gt;primaryKey[$i];
<span class="ln">1114</span>                     else
<span class="ln">1115</span>                         $pk=$pke-&gt;_table-&gt;primaryKey;
</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;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveFinder.php(1074): <strong>CJoinElement</strong>-&gt;<strong>joinOneMany</strong>(CJoinElement, array("token" =&gt; "token"), CJoinElement, CJoinElement)				</div>

				<div class="code"><pre><span class="ln">1069</span>             else
<span class="ln">1070</span>             {
<span class="ln">1071</span>                 $pke=$parent;
<span class="ln">1072</span>                 $fke=$this;
<span class="ln">1073</span>             }
<span class="error"><span class="ln error-ln">1074</span>             return $this-&gt;joinOneMany($fke,$fks,$pke,$parent);
</span><span class="ln">1075</span>         }
<span class="ln">1076</span>     }
<span class="ln">1077</span> 
<span class="ln">1078</span>     /**
<span class="ln">1079</span>      * Generates the join statement for one-many relationship.
</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;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveFinder.php(1320): <strong>CJoinElement</strong>-&gt;<strong>getJoinCondition</strong>()				</div>

				<div class="code"><pre><span class="ln">1315</span>             $this-&gt;join($element-&gt;slave);
<span class="ln">1316</span>         if(!empty($element-&gt;relation-&gt;select))
<span class="ln">1317</span>             $this-&gt;selects[]=$element-&gt;getColumnSelect($element-&gt;relation-&gt;select);
<span class="ln">1318</span>         $this-&gt;conditions[]=$element-&gt;relation-&gt;condition;
<span class="ln">1319</span>         $this-&gt;orders[]=$element-&gt;relation-&gt;order;
<span class="error"><span class="ln error-ln">1320</span>         $this-&gt;joins[]=$element-&gt;getJoinCondition();
</span><span class="ln">1321</span>         $this-&gt;joins[]=$element-&gt;relation-&gt;join;
<span class="ln">1322</span>         $this-&gt;groups[]=$element-&gt;relation-&gt;group;
<span class="ln">1323</span>         $this-&gt;havings[]=$element-&gt;relation-&gt;having;
<span class="ln">1324</span> 
<span class="ln">1325</span>         if(is_array($element-&gt;relation-&gt;params))
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveFinder.php(797): <strong>CJoinQuery</strong>-&gt;<strong>join</strong>(CJoinElement)				</div>

				<div class="code"><pre><span class="ln">792</span>                 $child-&gt;_joined=true;
<span class="ln">793</span>             elseif($child-&gt;relation instanceof CHasOneRelation || $child-&gt;relation instanceof CBelongsToRelation
<span class="ln">794</span>                 || $this-&gt;_finder-&gt;joinAll || $child-&gt;relation-&gt;together || (!$this-&gt;_finder-&gt;baseLimited &amp;&amp; $child-&gt;relation-&gt;together===null))
<span class="ln">795</span>             {
<span class="ln">796</span>                 $child-&gt;_joined=true;
<span class="error"><span class="ln error-ln">797</span>                 $query-&gt;join($child);
</span><span class="ln">798</span>                 $child-&gt;buildQuery($query);
<span class="ln">799</span>             }
<span class="ln">800</span>         }
<span class="ln">801</span>     }
<span class="ln">802</span> 
</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;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveFinder.php(439): <strong>CJoinElement</strong>-&gt;<strong>buildQuery</strong>(CJoinQuery)				</div>

				<div class="code"><pre><span class="ln">434</span>     {
<span class="ln">435</span>         if($this-&gt;_parent===null) // root element
<span class="ln">436</span>         {
<span class="ln">437</span>             $query=new CJoinQuery($this,$criteria);
<span class="ln">438</span>             $this-&gt;_finder-&gt;baseLimited=($criteria-&gt;offset&gt;=0 || $criteria-&gt;limit&gt;=0);
<span class="error"><span class="ln error-ln">439</span>             $this-&gt;buildQuery($query);
</span><span class="ln">440</span>             $this-&gt;_finder-&gt;baseLimited=false;
<span class="ln">441</span>             $this-&gt;runQuery($query);
<span class="ln">442</span>         }
<span class="ln">443</span>         elseif(!$this-&gt;_joined &amp;&amp; !empty($this-&gt;_parent-&gt;records)) // not joined before
<span class="ln">444</span>         {
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveFinder.php(68): <strong>CJoinElement</strong>-&gt;<strong>find</strong>(CDbCriteria)				</div>

				<div class="code"><pre><span class="ln">63</span>         {
<span class="ln">64</span>             $this-&gt;_joinTree-&gt;tableAlias=$criteria-&gt;alias;
<span class="ln">65</span>             $this-&gt;_joinTree-&gt;rawTableAlias=$this-&gt;_builder-&gt;getSchema()-&gt;quoteTableName($criteria-&gt;alias);
<span class="ln">66</span>         }
<span class="ln">67</span> 
<span class="error"><span class="ln error-ln">68</span>         $this-&gt;_joinTree-&gt;find($criteria);
</span><span class="ln">69</span>         $this-&gt;_joinTree-&gt;afterFind();
<span class="ln">70</span> 
<span class="ln">71</span>         if($all)
<span class="ln">72</span>         {
<span class="ln">73</span>             $result = array_values($this-&gt;_joinTree-&gt;records);
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveRecord.php(1364): <strong>CActiveFinder</strong>-&gt;<strong>query</strong>(CDbCriteria, true)				</div>

				<div class="code"><pre><span class="ln">1359</span>             return $all ? $this-&gt;populateRecords($command-&gt;queryAll(), true, $criteria-&gt;index) : $this-&gt;populateRecord($command-&gt;queryRow());
<span class="ln">1360</span>         }
<span class="ln">1361</span>         else
<span class="ln">1362</span>         {
<span class="ln">1363</span>             $finder=$this-&gt;getActiveFinder($criteria-&gt;with);
<span class="error"><span class="ln error-ln">1364</span>             return $finder-&gt;query($criteria,$all);
</span><span class="ln">1365</span>         }
<span class="ln">1366</span>     }
<span class="ln">1367</span> 
<span class="ln">1368</span>     /**
<span class="ln">1369</span>      * Applies the query scopes to the given criteria.
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/application/models/LSActiveRecord.php(77): <strong>CActiveRecord</strong>-&gt;<strong>query</strong>(CDbCriteria, true)				</div>

				<div class="code"><pre><span class="ln">72</span>      * @since 1.1.7
<span class="ln">73</span>      */
<span class="ln">74</span>     protected function query($criteria, $all = false, $asAR = true)
<span class="ln">75</span>     {
<span class="ln">76</span>         if ($asAR === true) {
<span class="error"><span class="ln error-ln">77</span>             return parent::query($criteria, $all);
</span><span class="ln">78</span>         } else {
<span class="ln">79</span>             $this-&gt;beforeFind();
<span class="ln">80</span>             $this-&gt;applyScopes($criteria);
<span class="ln">81</span>             if (!$all) {
<span class="ln">82</span>                 $criteria-&gt;limit = 1;
</pre></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;/limeservice/instances/2/limesurvey/framework/db/ar/CActiveRecord.php(1478): <strong>LSActiveRecord</strong>-&gt;<strong>query</strong>(CDbCriteria, true)				</div>

				<div class="code"><pre><span class="ln">1473</span>      */
<span class="ln">1474</span>     public function findAll($condition='',$params=array())
<span class="ln">1475</span>     {
<span class="ln">1476</span>         Yii::trace(get_class($this).'.findAll()','system.db.ar.CActiveRecord');
<span class="ln">1477</span>         $criteria=$this-&gt;getCommandBuilder()-&gt;createCriteria($condition,$params);
<span class="error"><span class="ln error-ln">1478</span>         return $this-&gt;query($criteria,true);
</span><span class="ln">1479</span>     }
<span class="ln">1480</span> 
<span class="ln">1481</span>     /**
<span class="ln">1482</span>      * Finds a single active record with the specified primary key.
<span class="ln">1483</span>      * See {@link find()} for detailed explanation about $condition and $params.
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/application/models/TokenDynamic.php(211): <strong>CActiveRecord</strong>-&gt;<strong>findAll</strong>(CDbCriteria)				</div>

				<div class="code"><pre><span class="ln">206</span>             $command-&gt;limit = $iMaxEmails;
<span class="ln">207</span>         }
<span class="ln">208</span> 
<span class="ln">209</span>         $command-&gt;order = 'tid';
<span class="ln">210</span> 
<span class="error"><span class="ln error-ln">211</span>         $oResult = $this-&gt;findAll($command);
</span><span class="ln">212</span>         foreach ($oResult as $key =&gt; $result) {
<span class="ln">213</span>             $oResult[$key] = $result-&gt;decrypt();
<span class="ln">214</span>         }
<span class="ln">215</span> 
<span class="ln">216</span>         $cpdbBlacklisted = Participant::model()-&gt;getBlacklistedParticipantIds();
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/application/controllers/admin/Tokens.php(1406): <strong>TokenDynamic</strong>-&gt;<strong>findUninvited</strong>(array("1", "2", "3", "4", ...), 0, false, "emailstatus = 'OK'", ...)				</div>

				<div class="code"><pre><span class="ln">1401</span>                         'condition' =&gt; 'responses.submitdate IS NULL',
<span class="ln">1402</span>                     ],
<span class="ln">1403</span>                 ]);
<span class="ln">1404</span>             }
<span class="ln">1405</span> 
<span class="error"><span class="ln error-ln">1406</span>             $ctresult = $tokenDynamic-&gt;findUninvited($aTokenIds, 0, $bIsInvitation, $SQLemailstatuscondition, $SQLremindercountcondition, $SQLreminderdelaycondition);
</span><span class="ln">1407</span>             $ctcount = count($ctresult);
<span class="ln">1408</span> 
<span class="ln">1409</span>             $emresult = array_slice($ctresult, 0, $iMaxEmails);
<span class="ln">1410</span>             $emcount = count($emresult);
<span class="ln">1411</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>Tokens</strong>-&gt;<strong>email</strong>(717329)				</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;/limeservice/instances/2/limesurvey/framework/web/actions/CAction.php(115): <strong>ReflectionMethod</strong>-&gt;<strong>invokeArgs</strong>(Tokens, array("717329"))				</div>

				<div class="code"><pre><span class="ln">110</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">111</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">112</span>             else
<span class="ln">113</span>                 return false;
<span class="ln">114</span>         }
<span class="error"><span class="ln error-ln">115</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">116</span>         return true;
<span class="ln">117</span>     }
<span class="ln">118</span> }
</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;/limeservice/instances/2/limesurvey/application/core/SurveyCommonAction.php(83): <strong>CAction</strong>-&gt;<strong>runWithParamsInternal</strong>(Tokens,
 ReflectionMethod, array("action" =&gt; "remind", "surveyid" =&gt; 
"717329", "sa" =&gt; "email", "iSurveyId" =&gt; "717329", ...))				</div>

				<div class="code"><pre><span class="ln">78</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">79</span>         }
<span class="ln">80</span> 
<span class="ln">81</span>         // We're all good to go, let's execute it
<span class="ln">82</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">83</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">84</span>     }
<span class="ln">85</span> 
<span class="ln">86</span>     /**
<span class="ln">87</span>      * Some functions have different parameters, which are just an alias of the
<span class="ln">88</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">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/web/CController.php(308): <strong>SurveyCommonAction</strong>-&gt;<strong>runWithParams</strong>(array("action" =&gt; "remind", "surveyid" =&gt; "717329", "sa" =&gt; "email", "iSurveyId" =&gt; "717329", ...))				</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">
				#14			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(Tokens)				</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">
				#15			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(Tokens, 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">
				#16			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/application/controllers/AdminController.php(226): <strong>CController</strong>-&gt;<strong>run</strong>("tokens")				</div>

				<div class="code"><pre><span class="ln">221</span>         }
<span class="ln">222</span> 
<span class="ln">223</span>         $this-&gt;runModuleController($action);
<span class="ln">224</span> 
<span class="ln">225</span> 
<span class="error"><span class="ln error-ln">226</span>         return parent::run($action);
</span><span class="ln">227</span>     }
<span class="ln">228</span> 
<span class="ln">229</span>     /**
<span class="ln">230</span>      * Starting with LS4, 3rd party developper can extends any of the LimeSurve controllers.
<span class="ln">231</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#17			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-&gt;<strong>run</strong>("tokens")				</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">
				#18			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("admin/tokens/sa/email")				</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">
				#19			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-&gt;<strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler('onBeginRequest'))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,'end'),0,false);
<span class="error"><span class="ln error-ln">185</span>         $this-&gt;processRequest();
</span><span class="ln">186</span>         if($this-&gt;hasEventHandler('onEndRequest'))
<span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">188</span>     }
<span class="ln">189</span> 
<span class="ln">190</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#20			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/limeservice/instances/2/limesurvey/index.php(194): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">189</span> require_once APPPATH . 'core/LSYii_Application' . EXT;
<span class="ln">190</span> 
<span class="ln">191</span> $config = require_once(APPPATH . 'config/internal' . EXT);
<span class="ln">192</span> 
<span class="ln">193</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">194</span> Yii::createApplication('LSYii_Application', $config)-&gt;run();
</span><span class="ln">195</span> 
<span class="ln">196</span> /* End of file index.php */
<span class="ln">197</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</tbody></table>
	</div>

	<div class="version">
		2022-08-24 17:28:40 nginx/1.14.0 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.24-dev	</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>



</body></html>
CDbException.html (30,805 bytes)   
Bug heat4
Complete LimeSurvey version number (& build)DB Version 447
I will donate to the project if issue is resolvedNo
Browser
Database type & versionDB Version 447
Server OS (if known)
Webserver software & version (if known)
PHP Version-

Users monitoring this issue

There are no users monitoring this issue.

Activities

ollehar

ollehar

2022-08-29 11:59

administrator   ~71549

Screenshot? Error is in French, so a bit hard to read.

jelo

jelo

2022-08-29 12:55

partner   ~71552

Seems to be more an issue around grasping what LimeSurvey means with anonymized surveys.

I don't use the mailing/reminder function, but a reminder is possible since the participants list contains the information about the token usage.
A reminder for unused tokens is not contradicting the "anonymized surveys" AKA token not saved in survey responses.

To keep respondents calm, it is often wiser to send all potential participants a reminder (even to those who already answered).

Issue History

Date Modified Username Field Change
2022-08-29 11:34 Shamouda New Issue
2022-08-29 11:34 Shamouda File Added: CDbException.html
2022-08-29 11:59 ollehar Note Added: 71549
2022-08-29 11:59 ollehar Bug heat 0 => 2
2022-08-29 12:22 ollehar Assigned To => ollehar
2022-08-29 12:22 ollehar Status new => feedback
2022-08-29 12:55 jelo Note Added: 71552
2022-08-29 12:55 jelo Bug heat 2 => 4