How can I detect multiple logins to a Django Web application from different locations?
Last Update:2016-06-13
Source: Internet
Author: User
<span id="Label3"></p><p><p>1) Install django-tracking (thankyou for that tip Van Gale Google Maps + GeoIP is amazing!)</p></p><p><p>2) ADD This middleware:</p></p><pre class="default prettyprint prettyprinted"><code><span class="kwd">From<span class="pln">Django<span class="pun">.<span class="pln">Contrib<span class="pun">.<span class="pln">Sessions<span class="pun">.<span class="pln">Models<span class="kwd">Import<span class="pln"> <span class="typ">Session<span class="pln"><span class="kwd">From<span class="pln">Tracking<span class="pun">.<span class="pln">Models<span class="kwd">Import<span class="pln"> <span class="typ">Visitor<span class="pln"><span class="kwd">From<span class="pln">Datetime<span class="kwd">Import<span class="pln">Datetime<span class="kwd">Class<span class="pln"> <span class="typ">Userrestrictmiddleware<span class="pun">(<span class="kwd">Object<span class="pun">):<span class="pln"> <span class="str">"" "prevents More than one user logging on once from-the-different IPs" "<span class="pln"> <span class="kwd">Def<span class="pln">Process_request<span class="pun">(<span class="kwd">Self<span class="pun">,<span class="pln">Request<span class="pun">):<span class="pln">IP_Address<span class="pun">=<span class="pln">Request<span class="pun">.<span class="pln">META<span class="pun">.<span class="kwd">Get<span class="pun">(<span class="str">' REMOTE_ADDR '<span class="pun">,<span class="str">‘‘<span class="pun">)<span class="pln"> <span class="kwd">Try<span class="pun">:<span class="pln">Last_login<span class="pun">=<span class="pln">Request<span class="pun">.<span class="pln">User<span class="pun">.<span class="pln">Last_login<span class="kwd">Except<span class="pun">:<span class="pln">Last_login<span class="pun">=<span class="pln"> <span class="lit">0<span class="pln"> <span class="kwd">If<span class="pln">Unicode<span class="pun">(<span class="pln">Last_login<span class="pun">)==<span class="pln">Unicode<span class="pun">(<span class="pln">Datetime<span class="pun">.<span class="pln">Now<span class="pun">())[:<span class="lit">19<span class="pun">]:<span class="pln">Previous_visitors<span class="pun">=<span class="pln"> <span class="typ">Visitor<span class="pun">.<span class="pln">Objects<span class="pun">.<span class="pln">Filter<span class="pun">(<span class="pln">User<span class="pun">=<span class="pln">Request<span class="pun">.<span class="pln">User<span class="pun">).<span class="pln">Exclude<span class="pun">(<span class="pln">IP_Address<span class="pun"><span class="pun">=<span class="pln">ip_address<span class="pun">) <span class="pln"> <span class="kwd">for<span class="pln"> visitor <span class="kwd">in<span class="pln"> Previous_visitors<span class="pun">: <span class="pln"> <span class="typ">session<span class="pun">.<span class="pln"> Objects<span class="pun">.<span class="pln"> Filter<span class="pun"> (<span class="pln">session_key<span class="pun">=<span class="pln">visitor <span class="pln" . <span>session_key<span class="pun">). <span class="kwd">delete<span class="pun"> () <span class="pln"> Visitor<span class="pun">.<span class="pun" user <span>=<span class="pln"> <span class="kwd">none<span class="pln"> Visitor<span class="pun">.< Span class= "pln" >save<span class="pun"> () </span> </span> </span> </span> </span> </span> </span> </span> </span> </span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre><p><p>3) Make sure it goes after the visitortrackingmiddleware and you should find previous logins is automatically bumped when Someone new logs in:)</p></p><p><p></p></p><p><p></p></p><p><p>Transferred from: http://stackoverflow.com/questions/821870/ How-can-i-detect-multiple-logins-into-a-django-web-application-from-different-lo</p></p><p><p>How can I detect multiple logins to a Django Web application from different locations?</p></p></span>