Home | History | Annotate | Download | only in auth
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/chromeos/login/auth/user_context.h"
      6 
      7 #include "chrome/browser/chromeos/login/helper.h"
      8 #include "chrome/browser/chromeos/login/users/user_manager.h"
      9 
     10 namespace chromeos {
     11 
     12 UserContext::UserContext() : is_using_oauth_(true),
     13                              auth_flow_(AUTH_FLOW_OFFLINE) {
     14 }
     15 
     16 UserContext::UserContext(const UserContext& other)
     17     : user_id_(other.user_id_),
     18       key_(other.key_),
     19       auth_code_(other.auth_code_),
     20       user_id_hash_(other.user_id_hash_),
     21       is_using_oauth_(other.is_using_oauth_),
     22       auth_flow_(other.auth_flow_) {
     23 }
     24 
     25 UserContext::UserContext(const std::string& user_id)
     26     : user_id_(login::CanonicalizeUserID(user_id)),
     27       is_using_oauth_(true),
     28       auth_flow_(AUTH_FLOW_OFFLINE) {
     29 }
     30 
     31 UserContext::~UserContext() {
     32 }
     33 
     34 bool UserContext::operator==(const UserContext& context) const {
     35   return context.user_id_ == user_id_ &&
     36          context.key_ == key_ &&
     37          context.auth_code_ == auth_code_ &&
     38          context.user_id_hash_ == user_id_hash_ &&
     39          context.is_using_oauth_ == is_using_oauth_ &&
     40          context.auth_flow_ == auth_flow_;
     41 }
     42 
     43 bool UserContext::operator!=(const UserContext& context) const {
     44   return !(*this == context);
     45 }
     46 
     47 const std::string& UserContext::GetUserID() const {
     48   return user_id_;
     49 }
     50 
     51 const Key* UserContext::GetKey() const {
     52   return &key_;
     53 }
     54 
     55 Key* UserContext::GetKey() {
     56   return &key_;
     57 }
     58 
     59 const std::string& UserContext::GetAuthCode() const {
     60   return auth_code_;
     61 }
     62 
     63 const std::string& UserContext::GetUserIDHash() const {
     64   return user_id_hash_;
     65 }
     66 
     67 bool UserContext::IsUsingOAuth() const {
     68   return is_using_oauth_;
     69 }
     70 
     71 UserContext::AuthFlow UserContext::GetAuthFlow() const {
     72   return auth_flow_;
     73 }
     74 
     75 bool UserContext::HasCredentials() const {
     76   return (!user_id_.empty() && !key_.GetSecret().empty()) ||
     77          !auth_code_.empty();
     78 }
     79 
     80 void UserContext::SetUserID(const std::string& user_id) {
     81   user_id_ = login::CanonicalizeUserID(user_id);
     82 }
     83 
     84 void UserContext::SetKey(const Key& key) {
     85   key_ = key;
     86 }
     87 
     88 void UserContext::SetAuthCode(const std::string& auth_code) {
     89   auth_code_ = auth_code;
     90 }
     91 
     92 void UserContext::SetUserIDHash(const std::string& user_id_hash) {
     93   user_id_hash_ = user_id_hash;
     94 }
     95 
     96 void UserContext::SetIsUsingOAuth(bool is_using_oauth) {
     97   is_using_oauth_ = is_using_oauth;
     98 }
     99 
    100 void UserContext::SetAuthFlow(AuthFlow auth_flow) {
    101   auth_flow_ = auth_flow;
    102 }
    103 
    104 void UserContext::ClearSecrets() {
    105   key_.ClearSecret();
    106   auth_code_.clear();
    107 }
    108 
    109 }  // namespace chromeos
    110