Exemple #1
0
bool CGUIPassword::CheckLock(LockType btnType, const std::string& strPassword, int iHeading, bool& bCanceled)
{
  bCanceled = false;
  if (btnType == LOCK_MODE_EVERYONE || strPassword == "-"        ||
      CProfilesManager::Get().GetMasterProfile().getLockMode() == LOCK_MODE_EVERYONE || g_passwordManager.bMasterUser)
    return true;

  int iVerifyPasswordResult = -1;
  std::string strHeading = g_localizeStrings.Get(iHeading);
  iVerifyPasswordResult = VerifyPassword(btnType, strPassword, strHeading);

  if (iVerifyPasswordResult == -1)
    bCanceled = true;

  return (iVerifyPasswordResult==0);
}
Exemple #2
0
bool CGUIPassword::CheckStartUpLock()
{
  // prompt user for mastercode if the mastercode was set b4 or by xml
  int iVerifyPasswordResult = -1;
  std::string strHeader = g_localizeStrings.Get(20075);
  if (iMasterLockRetriesLeft == -1)
    iMasterLockRetriesLeft = CSettings::Get().GetInt("masterlock.maxretries");
  if (g_passwordManager.iMasterLockRetriesLeft == 0) g_passwordManager.iMasterLockRetriesLeft = 1;
  std::string strPassword = CProfilesManager::Get().GetMasterProfile().getLockCode();
  if (CProfilesManager::Get().GetMasterProfile().getLockMode() == 0)
    iVerifyPasswordResult = 0;
  else
  {
    for (int i=1; i <= g_passwordManager.iMasterLockRetriesLeft; i++)
    {
      iVerifyPasswordResult = VerifyPassword(CProfilesManager::Get().GetMasterProfile().getLockMode(), strPassword, strHeader);
      if (iVerifyPasswordResult != 0 )
      {
        std::string strLabel1;
        strLabel1 = g_localizeStrings.Get(12343);
        int iLeft = g_passwordManager.iMasterLockRetriesLeft-i;
        std::string strLabel = StringUtils::Format("%i %s", iLeft, strLabel1.c_str());

        // PopUp OK and Display: MasterLock mode has changed but no no Mastercode has been set!
        CGUIDialogOK::ShowAndGetInput(20076, 12367, 12368, strLabel);
      }
      else
        i=g_passwordManager.iMasterLockRetriesLeft;
    }
  }

  if (iVerifyPasswordResult == 0)
  {
    g_passwordManager.iMasterLockRetriesLeft = CSettings::Get().GetInt("masterlock.maxretries");
    return true;  // OK The MasterCode Accepted! XBMC Can Run!
  }
  else
  {
    CApplicationMessenger::Get().Shutdown(); // Turn off the box
    return false;
  }
}
Exemple #3
0
void CCreatePGSAccount::OnOK() 
{
	if(!VerifyAccountFormat()){
		m_ecAccountID.SetFocus();
		m_ecAccountID.SetSel(0,-1);
		return;
	}

	if(!VerifyPasswordFormat()){
		m_ecPassword.SetFocus();
		m_ecPassword.SetSel(0,-1);
		return;
	}

	if(!VerifyPassword()){
		m_ecVerifyPassword.SetFocus();
		m_ecVerifyPassword.SetSel(0,-1);
		return;
	}

	CDialog::OnOK();
}
Exemple #4
0
bool CGUIPassword::IsMasterLockUnlocked(bool bPromptUser, bool& bCanceled)
{
  bCanceled = false;
  if (iMasterLockRetriesLeft == -1)
    iMasterLockRetriesLeft = CSettings::Get().GetInt("masterlock.maxretries");
  if ((LOCK_MODE_EVERYONE < CProfilesManager::Get().GetMasterProfile().getLockMode() && !bMasterUser) && !bPromptUser)
    // not unlocked, but calling code doesn't want to prompt user
    return false;

  if (g_passwordManager.bMasterUser || CProfilesManager::Get().GetMasterProfile().getLockMode() == LOCK_MODE_EVERYONE)
    return true;

  if (iMasterLockRetriesLeft == 0)
  {
    UpdateMasterLockRetryCount(false);
    return false;
  }

  // no, unlock since we are allowed to prompt
  int iVerifyPasswordResult = -1;
  std::string strHeading = g_localizeStrings.Get(20075);
  std::string strPassword = CProfilesManager::Get().GetMasterProfile().getLockCode();
  iVerifyPasswordResult = VerifyPassword(CProfilesManager::Get().GetMasterProfile().getLockMode(), strPassword, strHeading);
  if (1 == iVerifyPasswordResult)
    UpdateMasterLockRetryCount(false);

  if (0 != iVerifyPasswordResult)
  {
    bCanceled = true;
    return false;
  }

  // user successfully entered mastercode
  UpdateMasterLockRetryCount(true);
  return true;
}
Exemple #5
0
bool CGUIPassword::IsItemUnlocked(CFileItem* pItem, const std::string &strType)
{
  // \brief Tests if the user is allowed to access the share folder
  // \param pItem The share folder item to access
  // \param strType The type of share being accessed, e.g. "music", "video", etc. See CSettings::UpdateSources()
  // \return If access is granted, returns \e true
  if (CProfilesManager::Get().GetMasterProfile().getLockMode() == LOCK_MODE_EVERYONE)
    return true;

  while (pItem->m_iHasLock > 1)
  {
    std::string strLockCode = pItem->m_strLockCode;
    std::string strLabel = pItem->GetLabel();
    int iResult = 0;  // init to user succeeded state, doing this to optimize switch statement below
    char buffer[33]; // holds 32 places plus sign character
    if(g_passwordManager.bMasterUser)// Check if we are the MasterUser!
    {
      iResult = 0;
    }
    else
    {
      if (0 != CSettings::Get().GetInt("masterlock.maxretries") && pItem->m_iBadPwdCount >= CSettings::Get().GetInt("masterlock.maxretries"))
      { // user previously exhausted all retries, show access denied error
        CGUIDialogOK::ShowAndGetInput(12345, 12346, 0, 0);
        return false;
      }
      // show the appropriate lock dialog
      std::string strHeading = "";
      if (pItem->m_bIsFolder)
        strHeading = g_localizeStrings.Get(12325);
      else
        strHeading = g_localizeStrings.Get(12348);

      iResult = VerifyPassword(pItem->m_iLockMode, strLockCode, strHeading);
    }
    switch (iResult)
    {
    case -1:
      { // user canceled out
        return false;
        break;
      }
    case 0:
      {
        // password entry succeeded
        pItem->m_iBadPwdCount = 0;
        pItem->m_iHasLock = 1;
        g_passwordManager.LockSource(strType,strLabel,false);
        sprintf(buffer,"%i",pItem->m_iBadPwdCount);
        CMediaSourceSettings::Get().UpdateSource(strType, strLabel, "badpwdcount", buffer);
        CMediaSourceSettings::Get().Save();
        break;
      }
    case 1:
      {
        // password entry failed
        if (0 != CSettings::Get().GetInt("masterlock.maxretries"))
          pItem->m_iBadPwdCount++;
        sprintf(buffer,"%i",pItem->m_iBadPwdCount);
        CMediaSourceSettings::Get().UpdateSource(strType, strLabel, "badpwdcount", buffer);
        CMediaSourceSettings::Get().Save();
        break;
      }
    default:
      {
        // this should never happen, but if it does, do nothing
        return false;
        break;
      }
    }
  }
  return true;
}
Exemple #6
0
void KeyInfoDispose_Debug()
{
	
	
		//按键检测处理
	System.Key.Value = KeyScan() ;
	System.Key.Keylong = &Keylong ; 
	if(!System.Key.Value)
	{
		// 处理休眠操作
	}
	else
	{
	//	GR_DBG_PRINTF("keylong is  %d OK it is  %d\n\n",*System.Key.Keylong,Keylong);
		// 处理唤醒操作
		System.Key.NoKeyTime = 0 ;

		if(System.Dsp.Mode == SLEEP_MODE)
		{	
			CheckMode(); 
		}
		//处理按键操作
		switch(System.Key.Value)
		{
			case 1 :// 顶白光 
				{		
					Top_W_On();	
					PhotoMvLeft() ;
				}break ; 
			case 2 :// check: 850 940 770 闪烁   长按:进入PCCAM
				{
				#ifdef ONE_SENSOR
					Top_IR940_On_test();
				    PhotoMvUp() ; 
				#else
					if(*System.Key.Keylong)
					{
						switch(System.Dsp.Mode )
						{
							case PCCAM_MODE : CheckMode();	break;
							default:		  PccamMode();	break; 
						}
					}
					else
					{
						if(System.Dsp.Mode == CHECK_MODE||PCCAM_MODE)
						{
							switch(System.Led.Statu)
							{
								case TOP_IR850_ON : Top_IR940_On();break ; 
								case TOP_IR940_ON : Right_IR770_On();break ; 
								default :Top_IR850_On(); break ; 
							}
						}
						 
					}
				#endif 
				}break ; 

			case 3 ://check: 紫外-激光 长按:进入校正
				{					
					if(*System.Key.Keylong)// 进入校正功能
					{
						if(System.Dsp.Mode == CHECK_MODE)
						{
							PriorExposure();
						}
					}
					else
					{
						if((System.Dsp.Mode ==PCCAM_MODE)||(System.Dsp.Mode ==CHECK_MODE))
						{
							 Double_UV_On(); 				
						}
						PhotoMvRight() ;
					}
				}break ; 

			case 4 ://check : sensor1 sensor2 sensor3 ,长按:608    
				{
					switch(System.Dsp.Mode)
					{ 
						#ifdef ONE_SENSOR
						case PCCAM_MODE :
						{
							if(*System.Key.Keylong) 
							{
								CheckMode();
							}		
						}  break ;
						#endif 

						case VIEW_MODE :
						case CHECK_MODE :
						{
							if(*System.Key.Keylong) 
							{
								PccamMode();
							}
							else
							{
//								switch(System.Led.Statu)
//								{
//									case C608_PWR_ON: CheckMode();break; 
//									default:C608_On(); break; 	
//								}
								PhotoZoomUp();	
							}

	
						} break ; 
						default :break ; 
					}
					
				}break ; 
			case 5 ://check: 左白光 右白光 左红外, 右红外 view:翻页 放大
				{
					switch(System.Dsp.Mode)
					{
						case PCCAM_MODE :
						case CHECK_MODE :
						{
							switch(System.Led.Statu)
							{
								case LEFT_W_ON 	:	Right_W_On();		break ; 
								case RIGHT_W_ON	:	Left_IR850_On();	break ;
								case LEFT_IR850_ON:	Right_IR850_On();	break ;
								default :Left_W_On();
							}
						}break; 
						case VIEW_MODE :
						{	
							switch(System.Dsp.ViewMode.Zoom)
							{
								case X0 : 	PhotoPrevious(); break; 
								default :	PhotoMvLeft() ; 
							}
						}break; 
						default :break ;
					}					
				}break ; 
			case 6 ://check: 底白光,底红外  view :右边翻页
				{
					switch(System.Dsp.Mode)
					{
						case PCCAM_MODE :
						case CHECK_MODE :
						{
							switch(System.Led.Statu)
							{
								case BOT_W_ON :	Bot_IR_On(); break ; 
								default :Bot_W_On();
							}
						}break; 
						case VIEW_MODE :
						{
							switch(System.Dsp.ViewMode.Zoom)
							{
								//case X0 :	PhotoNext(); break ; 
								default :	PhotoMvDown() ; break ; 
							}
						}break; 
						default :break ;
					}										
				}break ; 
			case 7 ://view--check ; 
				{
					switch(System.Dsp.Mode)
					{
						case CHECK_MODE :
						{
						  VerifyPassword(0x07,&CheckMode,&ViewMode); 						
						} break; 
						case VIEW_MODE :
						{
							CheckMode();
						} break; 			
						default :break ;
					}							
										
				}break ; 
			case 8 ://check:短按单拍,长按8连拍 ,view 长按删除,短按确认
				{
					switch(System.Dsp.Mode)
					{
						case CHECK_MODE :
						{
						#ifdef ONE_SENSOR
							PhotographOne(); 
						#else
						
							if(*System.Key.Keylong) 
							{
								//PhotographOne(); 
							}
							else
							{	
								PhotographEight(); 
							}
						#endif
						}break; 
						case VIEW_MODE :
						{
							if(*System.Key.Keylong) 
							{
								PhotoDelAll(); 
							}
							else
							{
								
							}							
						}break; 
						default :break ;
					}  	
				}break ; 
			case 9 ://check: 短按连拍,长按修改密码  // view:自动回放
				{
					switch(System.Dsp.Mode)
					{
						case CHECK_MODE :
						{
							if(*System.Key.Keylong) 
							{
							 	VerifyPassword(0x09,&CheckMode,&ChangePassWord); 	
								CheckMode(); 
							}
							else
							{	
								PhotographFour(); 
							}
						}break; 
						case VIEW_MODE :
						{	
							PhotoAutoView(); // 自动回放
						}break;
						default :break ;
					}				
				}break ; 
			default : break ; 
		}
	}
}