mirror of
https://github.com/elyby/oauth2-server.git
synced 2024-12-27 07:20:18 +05:30
397 lines
78 KiB
HTML
397 lines
78 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Code Coverage for /home/travis/build/thephpleague/oauth2-server/src/Grant/PasswordGrant.php</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link href="../css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="../css/style.css" rel="stylesheet">
|
|
<!--[if lt IE 9]>
|
|
<script src="../js/html5shiv.min.js"></script>
|
|
<script src="../js/respond.min.js"></script>
|
|
<![endif]-->
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<ol class="breadcrumb">
|
|
<li><a href="../index.html">/home/travis/build/thephpleague/oauth2-server/src</a></li>
|
|
<li><a href="index.html">Grant</a></li>
|
|
<li class="active">PasswordGrant.php</li>
|
|
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<div class="container">
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<td> </td>
|
|
<td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
|
|
<td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
|
|
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="danger">Total</td>
|
|
<td class="danger big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
|
|
<span class="sr-only">0.00% covered (danger)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="danger small"><div align="right">0.00%</div></td>
|
|
<td class="danger small"><div align="right">0 / 1</div></td>
|
|
<td class="warning big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
|
|
<span class="sr-only">66.67% covered (warning)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="warning small"><div align="right">66.67%</div></td>
|
|
<td class="warning small"><div align="right">2 / 3</div></td>
|
|
<td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
|
|
<td class="warning big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
|
|
<span class="sr-only">76.92% covered (warning)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="warning small"><div align="right">76.92%</div></td>
|
|
<td class="warning small"><div align="right">10 / 13</div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="danger">PasswordGrant</td>
|
|
<td class="danger big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
|
|
<span class="sr-only">0.00% covered (danger)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="danger small"><div align="right">0.00%</div></td>
|
|
<td class="danger small"><div align="right">0 / 1</div></td>
|
|
<td class="warning big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
|
|
<span class="sr-only">66.67% covered (warning)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="warning small"><div align="right">66.67%</div></td>
|
|
<td class="warning small"><div align="right">2 / 3</div></td>
|
|
<td class="warning small">17.77</td>
|
|
<td class="warning big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
|
|
<span class="sr-only">76.92% covered (warning)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="warning small"><div align="right">76.92%</div></td>
|
|
<td class="warning small"><div align="right">10 / 13</div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="success" colspan="4"> <a href="#62">setVerifyCredentialsCallback(callable $callback)</a></td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success small">1</td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="success" colspan="4"> <a href="#74">getVerifyCredentialsCallback()</a></td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
<td class="success small">3</td>
|
|
<td class="success big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
|
|
<span class="sr-only">100.00% covered (success)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="success small"><div align="right">100.00%</div></td>
|
|
<td class="success small"><div align="right">1 / 1</div></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="danger" colspan="4"> <a href="#90">completeFlow()</a></td>
|
|
<td class="danger big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
|
|
<span class="sr-only">0.00% covered (danger)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="danger small"><div align="right">0.00%</div></td>
|
|
<td class="danger small"><div align="right">0 / 1</div></td>
|
|
<td class="danger small">13.45</td>
|
|
<td class="warning big"> <div class="progress">
|
|
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="72.73" aria-valuemin="0" aria-valuemax="100" style="width: 72.73%">
|
|
<span class="sr-only">72.73% covered (warning)</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class="warning small"><div align="right">72.73%</div></td>
|
|
<td class="warning small"><div align="right">8 / 11</div></td>
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table id="code" class="table table-borderless table-condensed">
|
|
<tbody>
|
|
<tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr>
|
|
<tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * OAuth 2.0 Password grant</span></td></tr>
|
|
<tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @package league/oauth2-server</span></td></tr>
|
|
<tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @author Alex Bilbie <hello@alexbilbie.com></span></td></tr>
|
|
<tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @copyright Copyright (c) Alex Bilbie</span></td></tr>
|
|
<tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> * @license http://mit-license.org/</span></td></tr>
|
|
<tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="comment"> * @link https://github.com/thephpleague/oauth2-server</span></td></tr>
|
|
<tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Grant</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">AccessTokenEntity</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ClientEntity</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">RefreshTokenEntity</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">SessionEntity</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Event</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">League</span><span class="default">\</span><span class="default">OAuth2</span><span class="default">\</span><span class="default">Server</span><span class="default">\</span><span class="default">Util</span><span class="default">\</span><span class="default">SecureKey</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * Password grant class</span></td></tr>
|
|
<tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">PasswordGrant</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">AbstractGrant</span></td></tr>
|
|
<tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> * Grant identifier</span></td></tr>
|
|
<tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr>
|
|
<tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$identifier</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'password'</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="comment"> * Response type</span></td></tr>
|
|
<tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr>
|
|
<tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$responseType</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> * Callback to authenticate a user's name and password</span></td></tr>
|
|
<tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="comment"> * @var callable</span></td></tr>
|
|
<tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$callback</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> * Access token expires in override</span></td></tr>
|
|
<tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> * @var int</span></td></tr>
|
|
<tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$accessTokenTTL</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment"> * Set the callback to verify a user's username and password</span></td></tr>
|
|
<tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment"> * @param callable $callback The callback function</span></td></tr>
|
|
<tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="comment"> * @return void</span></td></tr>
|
|
<tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setVerifyCredentialsCallback</span><span class="keyword">(</span><span class="keyword">callable</span><span class="default"> </span><span class="default">$callback</span><span class="keyword">)</span></td></tr>
|
|
<tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr class="success popin" data-title="5 tests cover line 64" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">callback</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$callback</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment"> * Return the callback function</span></td></tr>
|
|
<tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment"> * @return callable</span></td></tr>
|
|
<tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment"> * @throws</span></td></tr>
|
|
<tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getVerifyCredentialsCallback</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
|
|
<tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">callback</span><span class="keyword">)</span><span class="default"> </span><span class="default">||</span><span class="default"> </span><span class="keyword">!</span><span class="default">is_callable</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">callback</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">ServerErrorException</span><span class="keyword">(</span><span class="default">'Null or non-callable callback set on Password grant'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"></td></tr>
|
|
<tr class="success popin" data-title="5 tests cover line 80" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">callback</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr>
|
|
<tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="comment"> * Complete the password grant</span></td></tr>
|
|
<tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr>
|
|
<tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr>
|
|
<tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment"> * @throws</span></td></tr>
|
|
<tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr>
|
|
<tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">completeFlow</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
|
|
<tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Get the required params</span></td></tr>
|
|
<tr class="danger"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$clientId</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">request</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'client_id'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getUser</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr class="danger"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$clientId</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr class="danger"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'client_id'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$clientSecret</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">request</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'client_secret'</span><span class="keyword">,</span></td></tr>
|
|
<tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getPassword</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$clientSecret</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'client_secret'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Validate client ID and client secret</span></td></tr>
|
|
<tr class="success popin" data-title="9 tests cover line 105" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidClient</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoUsername</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoPassword</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoCallable</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getClientStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span></td></tr>
|
|
<tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$clientId</span><span class="keyword">,</span></td></tr>
|
|
<tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$clientSecret</span><span class="keyword">,</span></td></tr>
|
|
<tr class="success popin" data-title="9 tests cover line 108" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidClient</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoUsername</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoPassword</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoCallable</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">null</span><span class="keyword">,</span></td></tr>
|
|
<tr class="success popin" data-title="9 tests cover line 109" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidClient</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoUsername</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoPassword</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoCallable</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getIdentifier</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
|
|
<tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"></td></tr>
|
|
<tr class="success popin" data-title="9 tests cover line 112" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidClient</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoUsername</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoPassword</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoCallable</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$client</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">ClientEntity</span><span class="keyword">)</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getEventEmitter</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">emit</span><span class="keyword">(</span><span class="keyword">new</span><span class="default"> </span><span class="default">Event</span><span class="default">\</span><span class="default">ClientAuthenticationFailedEvent</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidClientException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$username</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">request</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'username'</span><span class="keyword">,</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$username</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'username'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$password</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">request</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'password'</span><span class="keyword">,</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$password</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'password'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Check if user's username and password are correct</span></td></tr>
|
|
<tr class="success popin" data-title="1 test covers line 128" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testNoCallable</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$userId</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">call_user_func</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">getVerifyCredentialsCallback</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span><span class="default"> </span><span class="default">$username</span><span class="keyword">,</span><span class="default"> </span><span class="default">$password</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"></td></tr>
|
|
<tr class="success popin" data-title="5 tests cover line 130" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$userId</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getEventEmitter</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">emit</span><span class="keyword">(</span><span class="keyword">new</span><span class="default"> </span><span class="default">Event</span><span class="default">\</span><span class="default">UserAuthenticationFailedEvent</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidCredentialsException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Validate any scopes that are in the request</span></td></tr>
|
|
<tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$scopeParam</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">request</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'scope'</span><span class="keyword">,</span><span class="default"> </span><span class="default">''</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr class="success popin" data-title="2 tests cover line 137" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidScope</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowNoScopes</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$scopes</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">validateScopes</span><span class="keyword">(</span><span class="default">$scopeParam</span><span class="keyword">,</span><span class="default"> </span><span class="default">$client</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Create a new session</span></td></tr>
|
|
<tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$session</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">SessionEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$session</span><span class="default">-></span><span class="default">setOwner</span><span class="keyword">(</span><span class="default">'user'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$userId</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$session</span><span class="default">-></span><span class="default">associateClient</span><span class="keyword">(</span><span class="default">$client</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Generate an access token</span></td></tr>
|
|
<tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$accessToken</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">AccessTokenEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$accessToken</span><span class="default">-></span><span class="default">setId</span><span class="keyword">(</span><span class="default">SecureKey</span><span class="default">::</span><span class="default">generate</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$accessToken</span><span class="default">-></span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">getAccessTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">+</span><span class="default"> </span><span class="default">time</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Associate scopes with the session and access token</span></td></tr>
|
|
<tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$scopes</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$scope</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$session</span><span class="default">-></span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"></td></tr>
|
|
<tr class="success popin" data-title="2 tests cover line 154" data-content="<ul><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlow</li><li class="success">LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken</li></ul>" data-placement="bottom" data-html="true"><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$session</span><span class="default">-></span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$scope</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$accessToken</span><span class="default">-></span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">setSession</span><span class="keyword">(</span><span class="default">$session</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'access_token'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$accessToken</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'expires_in'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getAccessTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Associate a refresh token if set</span></td></tr>
|
|
<tr><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">hasGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$refreshToken</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">RefreshTokenEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$refreshToken</span><span class="default">-></span><span class="default">setId</span><span class="keyword">(</span><span class="default">SecureKey</span><span class="default">::</span><span class="default">generate</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$refreshToken</span><span class="default">-></span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="default">-></span><span class="default">getRefreshTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">+</span><span class="default"> </span><span class="default">time</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$refreshToken</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// Save everything</span></td></tr>
|
|
<tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$session</span><span class="default">-></span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$accessToken</span><span class="default">-></span><span class="default">setSession</span><span class="keyword">(</span><span class="default">$session</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$accessToken</span><span class="default">-></span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">hasGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr>
|
|
<tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$refreshToken</span><span class="default">-></span><span class="default">setAccessToken</span><span class="keyword">(</span><span class="default">$accessToken</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$refreshToken</span><span class="default">-></span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"></td></tr>
|
|
<tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">server</span><span class="default">-></span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">generateResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
|
|
<tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr>
|
|
<tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
<footer>
|
|
<hr/>
|
|
<h4>Legend</h4>
|
|
<p>
|
|
<span class="success"><strong>Executed</strong></span>
|
|
<span class="danger"><strong>Not Executed</strong></span>
|
|
<span class="warning"><strong>Dead Code</strong></span>
|
|
</p>
|
|
<p>
|
|
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.0.14</a> using <a href="http://hhvm.com/" target="_top">HHVM 3.4.0</a> and <a href="http://phpunit.de/">PHPUnit 4.3.5</a> at Wed Jan 14 23:28:38 UTC 2015.</small>
|
|
</p>
|
|
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
|
|
</footer>
|
|
</div>
|
|
<script src="../js/jquery.min.js" type="text/javascript"></script>
|
|
<script src="../js/bootstrap.min.js" type="text/javascript"></script>
|
|
<script src="../js/holder.js" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
var $window = $(window)
|
|
, $top_link = $('#toplink')
|
|
, $body = $('body, html')
|
|
, offset = $('#code').offset().top;
|
|
|
|
$top_link.hide().click(function(event) {
|
|
event.preventDefault();
|
|
$body.animate({scrollTop:0}, 800);
|
|
});
|
|
|
|
$window.scroll(function() {
|
|
if($window.scrollTop() > offset) {
|
|
$top_link.fadeIn();
|
|
} else {
|
|
$top_link.fadeOut();
|
|
}
|
|
}).scroll();
|
|
|
|
$('.popin').popover({trigger: 'hover'});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|