-Returns true or false for if a user can execute a privilaged oper command.
-<p>
-This is done by looking up their oper type from <a class="el" href="classuserrec.html#m11">userrec::oper</a>, then referencing this to their oper classes and checking the commands they can execute.
-<p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00097">97</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-<div class="fragment"><pre>00098 {
-00099 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-00100 <span class="keywordtype">char</span>* myclass;
-00101 <span class="keywordtype">char</span>* mycmd;
-00102 <span class="keywordtype">char</span>* savept;
-00103 <span class="keywordtype">char</span>* savept2;
-00104
-00105 <span class="comment">// are they even an oper at all?</span>
-00106 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>))
-00107 {
-00108 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick);
-00109 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&config_f); j++)
-00110 {
-00111 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&config_f);
-00112 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper))
-00113 {
-00114 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper);
-00115 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&config_f);
-00116 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept);
-00117 <span class="keywordflow">while</span> (myclass)
-00118 {
-00119 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
-00120 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k < ConfValueEnum(<span class="stringliteral">"class"</span>,&config_f); k++)
-00121 {
-00122 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&config_f);
-00123 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-00124 {
-00125 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&config_f);
-00126 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
-00127
-00128
-00129 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2);
-00130 <span class="keywordflow">while</span> (mycmd)
-00131 {
-00132 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
-00133 {
-00134 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
-00135 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-00136 }
-00137 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2);
-00138 }
-00139 }
-00140 }
-00141 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept);
-00142 }
-00143 }
-00144 }
-00145 }
-00146 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-00147 }
+Returns true or false for if a user can execute a privilaged oper command.
+<p>
+This is done by looking up their oper type from <a class="el" href="classuserrec.html#o11">userrec::oper</a>, then referencing this to their oper classes and checking the commands they can execute.
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00114">114</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="channels_8cpp-source.html#l00101">config_f</a>, and <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>.
+<p>
+<div class="fragment"><pre>00115 {
+00116 <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
+00117 <span class="keywordtype">char</span>* mycmd;
+00118 <span class="keywordtype">char</span>* savept;
+00119 <span class="keywordtype">char</span>* savept2;
+00120
+00121 <span class="comment">// are they even an oper at all?</span>
+00122 <span class="keywordflow">if</span> (strchr(this->modes,<span class="charliteral">'o'</span>))
+00123 {
+00124 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper"</span>,this->nick);
+00125 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j < ConfValueEnum(<span class="stringliteral">"type"</span>,&config_f); j++)
+00126 {
+00127 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&config_f);
+00128 <span class="keywordflow">if</span> (!strcmp(TypeName,this->oper))
+00129 {
+00130 log(DEBUG,<span class="stringliteral">"*** HasPermission: %s is an oper of type '%s'"</span>,this->nick,this->oper);
+00131 ConfValue(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&config_f);
+00132 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&savept);
+00133 <span class="keywordflow">while</span> (myclass)
+00134 {
+00135 log(DEBUG,<span class="stringliteral">"*** HasPermission: checking classtype '%s'"</span>,myclass);
+00136 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k < ConfValueEnum(<span class="stringliteral">"class"</span>,&config_f); k++)
+00137 {
+00138 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&config_f);
+00139 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+00140 {
+00141 ConfValue(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&config_f);
+00142 log(DEBUG,<span class="stringliteral">"*** HasPermission: found class named %s with commands: '%s'"</span>,ClassName,CommandList);
+00143
+00144
+00145 mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&savept2);
+00146 <span class="keywordflow">while</span> (mycmd)
+00147 {
+00148 <span class="keywordflow">if</span> (!strcasecmp(mycmd,command))
+00149 {
+00150 log(DEBUG,<span class="stringliteral">"*** Command %s found, returning true"</span>,command);
+00151 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00152 }
+00153 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept2);
+00154 }
+00155 }
+00156 }
+00157 myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&savept);
+00158 }
+00159 }
+00160 }
+00161 }
+00162 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00163 }