亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cli_webif.c

?? 命令行在嵌入式系統的實現
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*-----------------------------------------------------------------------------
 函數名稱    : CLI_WebSetUserPassword();
 功能        : 設置用戶密碼
 輸入參數    : szOprName,   操作用戶名;
               szUserName,  設置用戶名;
               szPassword,  設置密碼;
 輸出參數    : 無.
 返回值      : G_SUCCESS,   成功;
               其他,        失敗.
 函數調用說明: woodhead的密碼不可修改;
               woodhead可以修改woodhead級別以下(不包括woodhead)的用戶的密碼。
               root可以修改root和root級別以下的用戶的密碼。
               root級別以下的用戶(不包括root)只能夠修改自己的密碼。
 典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebSetUserPassword( const _S8* szOprName,
                                        const _S8* szUserName, const _S8* szPassword )
{
    _U32                ulRet;
    PTermUserItem       pstOprUser, pstSetUser;

    /* 輸入指針的合法性檢查 */
    if(    ( G_NULL == szOprName )
        || ( G_NULL == szUserName )
        || ( G_NULL == szPassword )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 字符串長度的合法性檢查 */
    if(    ( EOS_StrLen( szUserName ) >= USERNAME_LEN )
        || ( EOS_StrLen( szOprName ) >= USERNAME_LEN )
        || ( EOS_StrLen( szPassword ) >= PASSWORD_LEN )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserPassword() :: "
             "Operation user <%s> . Set user <%s>, password <%s> ",
             szOprName, szUserName, szPassword );

    /* 根據用戶名獲取用戶信息 */
    pstOprUser = CLI_GetUserByName( szOprName );
    if( pstOprUser == G_NULL )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserPassword() :: "
                 "Operation user <%s> is not exist !", szOprName  );
        (_VOID)WNM_SendErrString( CLI_USER_NOT_EXISTED );
        return G_FAILURE;
    }

    pstSetUser = CLI_GetUserByName( szUserName );
    if( pstSetUser == G_NULL )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserPassword() :: "
                 "Set user <%s> is not exist !", szUserName  );
        (_VOID)WNM_SendErrString( CLI_USER_NOT_EXISTED );
        return G_FAILURE;
    }

    /* ========================================================================
       判斷密碼是否被修改, 如果沒有被修改, 返回成功.
       此功能本來應該由NMS模塊實現, 先判斷網頁的用戶密碼是否被修改, 再調用本函數,
       但其無法判斷網頁是否被修改, 故放此處實現                                 */
    ulRet = CLI_CheckUserPassword( szUserName, szPassword );
    if( G_SUCCESS == ulRet )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserPassword() :: "
                 "User <%s> 's password <%s> is not modified . return success !",
                 szUserName, szPassword );
        return G_SUCCESS;
    }
    /* ======================================================================== */

    /* 調試用戶的密碼不允許修改 */
    if( pstSetUser->ulLevel >= CT_AL_DEBUG )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserPassword() :: "
                 "Debug user <%s> 's password can not be changed !", szUserName  );
        (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
        return G_FAILURE;
    }

    /* 調試用戶和超級用戶可以修改超級用戶和低級別用戶的密碼 */
    if(    ( pstOprUser->ulLevel >= CT_AL_SUPER )
        && ( pstSetUser->ulLevel <=  CT_AL_SUPER ) )
    {
        DBG_ASSERT( pstSetUser->ulLevel <=  pstOprUser->ulLevel );

        return CLI_SetUserPassword( szUserName, szPassword );
    }
    /* 其他用戶只能修改自己的密碼 */
    else
    {
        if( 0 == EOS_StriCmp( szOprName, szUserName ) )
        {
            return CLI_SetUserPassword( szUserName, szPassword );
        }
        else
        {
            DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserPassword() :: "
                     "Operation user <%s> must be equal to set user <%s> !",
                     szOprName, szUserName );
            (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
            return G_FAILURE;
        }
    }


}




/*-----------------------------------------------------------------------------
 函數名稱    : CLI_WebSetUserLevel();
 功能        : 設置用戶慣用語種
 輸入參數    : szOprName,   操作用戶名;
               szUserName,  設置用戶名;
               ucLan,       用戶慣用語種;
 輸出參數    : 無.
 返回值      : G_SUCCESS,   成功;
               其他,        失敗.
 函數調用說明: woodhead可以修改woodhead和woodhead級別以下的用戶的語種;
               root可以修改root和root級別以下的用戶的語種;
               root級別以下的用戶(不包括root)只能夠修改自己的語種。
 典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebSetUserLanguage( const _S8* szOprName,
                                  const _S8* szUserName, _U8 ucLan )
{
    PTermUserItem       pstOprUser, pstSetUser;

    /* 輸入指針的合法性檢查 */
    if(    ( G_NULL == szOprName )
        || ( G_NULL == szUserName )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 字符串長度的合法性檢查 */
    if(    ( EOS_StrLen( szUserName ) >= USERNAME_LEN )
        || ( EOS_StrLen( szOprName ) >= USERNAME_LEN )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 語種ID的合法性檢查 */
    if( ucLan >= ML_GetLangNum() )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLanguage() :: "
             "Operation user <%s> . Set user <%s>, ucLan <%ld> ",
             szOprName, szUserName, ucLan );

    /* 根據用戶名獲取用戶信息 */
    pstOprUser = CLI_GetUserByName( szOprName );
    if( pstOprUser == G_NULL )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLanguage() :: "
                 "Operation user <%s> is not exist !", szOprName  );
        (_VOID)WNM_SendErrString( CLI_USER_NOT_EXISTED );
        return G_FAILURE;
    }

    pstSetUser = CLI_GetUserByName( szUserName );
    if( pstSetUser == G_NULL )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLanguage() :: "
                 "Set user <%s> is not exist !", szUserName  );
        (_VOID)WNM_SendErrString( CLI_USER_NOT_EXISTED );
        return G_FAILURE;
    }

    /* ========================================================================
       判斷用戶慣用語種是否被修改, 如果沒有被修改, 返回成功.
       此功能本來應該由NMS模塊實現, 先判斷網頁的用戶慣用語種是否被修改, 再調用本函數,
       但其無法判斷網頁是否被修改, 故放此處實現                                 */
    if( ucLan == pstSetUser->ucLanguage )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLanguage() :: "
                 "user <%s> 's ucLan <%ld> is not modified . return success !",
                 szUserName, ucLan );
        return G_SUCCESS;
    }
    /* ======================================================================== */

    /* woodhead可以修改woodhead和woodhead級別以下的用戶的語種 */
    if(    ( pstOprUser->ulLevel == CT_AL_DEBUG )
        && ( pstSetUser->ulLevel <=  CT_AL_DEBUG ) )
    {
        return CLI_SetUserLanguage( szUserName, ucLan );
    }
    /* root可以修改root和root級別以下的用戶的語種 */
    else if(    ( pstOprUser->ulLevel == CT_AL_SUPER )
             && ( pstSetUser->ulLevel <= CT_AL_SUPER ) )
    {
        return CLI_SetUserLanguage( szUserName, ucLan );
    }
    /* root級別以下的用戶(不包括root)只能夠修改自己的語種。 */
    else
    {
        if( 0 == EOS_StriCmp( szOprName, szUserName ) )
        {
            return CLI_SetUserLanguage( szUserName, ucLan );
        }
        else
        {

            DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLanguage() :: "
                     "Operation user <%s> must be equal to set user <%s> !",
                     szOprName, szUserName );
            (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
            return G_FAILURE;
        }
    }

}


/*-----------------------------------------------------------------------------
 函數名稱    : CLI_WebSetUserLevel();
 功能        : 設置用戶權限級別
 輸入參數    : szOprName,   操作用戶名;
               szUserName,  設置用戶名;
               ucLevel,     用戶權限級別, 即用戶操作級別, 枚舉CLI_OPERAT_LEVEL_T
 輸出參數    : 無.
 返回值      : G_SUCCESS,   成功;
               其他,        失敗.
 函數調用說明: woodhead和root的權限不可修改;
               woodhead和root用戶可以修改root級別以下(不包括root)的用戶的權限;
               root級別以下的用戶(不包括root)不允許進行權限修改操作。
 典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebSetUserLevel( const _S8* szOprName,
                                  const _S8* szUserName, _U8 ucLevel )
{
    PTermUserItem       pstOprUser, pstSetUser;

    /* 輸入指針的合法性檢查 */
    if(    ( G_NULL == szOprName )
        || ( G_NULL == szUserName )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 字符串長度的合法性檢查 */
    if(    ( EOS_StrLen( szUserName ) >= USERNAME_LEN )
        || ( EOS_StrLen( szOprName ) >= USERNAME_LEN )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
             "Operation user <%s> . Set user <%s>, ucLevel <%ld> ",
             szOprName, szUserName, ucLevel );

    /* 根據用戶名獲取用戶信息 */
    pstOprUser = CLI_GetUserByName( szOprName );
    if( pstOprUser == G_NULL )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
                 "Operation user <%s> is not exist !", szOprName  );
        (_VOID)WNM_SendErrString( CLI_USER_NOT_EXISTED );
        return G_FAILURE;
    }

    pstSetUser = CLI_GetUserByName( szUserName );
    if( pstSetUser == G_NULL )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
                 "Set user <%s> is not exist !", szUserName  );
        (_VOID)WNM_SendErrString( CLI_USER_NOT_EXISTED );
        return G_FAILURE;
    }

    /* ========================================================================
       判斷用戶權限級別是否被修改, 如果沒有被修改, 返回成功.
       此功能本來應該由NMS模塊實現, 先判斷網頁的用戶權限級別是否被修改, 再調用本函數,
       但其無法判斷網頁是否被修改, 故放此處實現                                 */
    if( ucLevel == (_U8)pstSetUser->ulLevel )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
                 "user <%s> 's ucLevel <%ld> is not modified . return success !",
                 szUserName, ucLevel );
        return G_SUCCESS;
    }
    /* ======================================================================== */

    /* 輸入的用戶權限的合法性檢查 */
    if( ucLevel >= CT_AL_SUPER )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
                 "Input user level %ld is too high ! must be lower than super level .",
                 ucLevel );
        (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
        return G_FAILURE;
    }

    /* 操作用戶必須是調試用戶或超級用戶 */
    if( pstOprUser->ulLevel < CT_AL_SUPER )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
                 "Operation user <%s> 's level %ld is too lower. must be debug user or super user !",
                 szOprName, pstOprUser->ulLevel );
        (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
        return G_FAILURE;
    }

    /* 不允許修改調試用戶和超級用戶的權限 */
    if( pstSetUser->ulLevel >= CT_AL_SUPER )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebSetUserLevel() :: "
                 "Debug user or super user <%s> 's level can not be changed !",
                 szUserName  );
        (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
        return G_FAILURE;
    }

    return CLI_SetUserLevel( szUserName, ucLevel );

}



/*-----------------------------------------------------------------------------
 函數名稱    : CLI_WebUserAdd();
 功能        : 增加用戶
 輸入參數    : szOprName,   操作用戶名;
               szUserName,  添加用戶名;
               szPassword,  密碼(明文);
               ucLevel,     用戶權限級別, 即用戶操作級別, 枚舉CLI_OPERAT_LEVEL_T
               ucLan,       用戶慣用語種;
 輸出參數    : 無.
 返回值      : G_SUCCESS,   成功;
               其他,        失敗.
 函數調用說明: woodhead和root用戶可以增刪root級別以下(不包括root)的用戶。
               root級別以下的用戶(不包括root)不允許進行增刪操作。
 典型使用示例:
-----------------------------------------------------------------------------*/
_U32 CLI_WebUserAdd(  const _S8* szOprName,
                             const _S8* szUserName, const _S8* szPassword,
                             _U8 ucLevel, _U8 ucLan )
{

    _U32                i;
    PTermUserItem       pstOprUser;

    /* 輸入指針的合法性檢查 */
    if(    ( G_NULL == szOprName )
        || ( G_NULL == szUserName )
        || ( G_NULL == szPassword )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 字符串長度的合法性檢查 */
    if(    ( EOS_StrLen( szOprName )  >= USERNAME_LEN )
        || ( EOS_StrLen( szUserName ) >= PASSWORD_LEN )
        || ( EOS_StrLen( szPassword ) >= PASSWORD_LEN )
      )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    /* 調試用戶或超級用戶是唯一的, 不允許再添加 */
    if( ucLevel >= CT_AL_SUPER )
    {
        DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebUserAdd() :: "
                 "Add user <%s> 's level %ld is too higher ! "
                 "System only support one debug user and one super user !",
                 szUserName, ucLevel );
        (_VOID)WNM_SendErrString( CLI_USER_HAS_NO_RIGHT );
        return G_FAILURE;
    }

    /* 語種ID的合法性檢查 */
    if( ucLan >= ML_GetLangNum() )
    {
        MT_ERRLOG(0);
        return G_FAILURE;
    }

    DBG_Out( PID_CLI, CLI_DBGOUT_NOTE, G_STR_HEAD"CLI_WebUserAdd() :: "
             "Operation user <%s> . Add user <%s>, password <%s>, ucLevel <%ld>, ucLan <%ld> ",
             szOprName, szUserName, szPassword, ucLevel, ucLan );

    /* 根據用戶名獲取用戶信息 */
    pstOprUser = CLI_GetUserByName( szOprName );
    if( pstOprUser == G_NULL )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色av综合在线| 在线看国产一区| 欧美日韩在线不卡| 色综合久久久网| 3d成人动漫网站| 国产午夜精品理论片a级大结局| 亚洲精品视频免费观看| 一区二区三区在线视频免费观看 | 日本一二三不卡| 亚洲国产精品视频| eeuss鲁片一区二区三区在线看| 日韩视频在线你懂得| 亚洲中国最大av网站| 日韩av电影免费观看高清完整版| 91福利区一区二区三区| 亚洲综合色婷婷| 国产在线精品国自产拍免费| 538在线一区二区精品国产| 国产亚洲综合性久久久影院| 国产麻豆视频精品| 久久久影院官网| 婷婷久久综合九色综合伊人色| 在线观看亚洲精品视频| 久久久精品综合| 成人黄色av网站在线| 欧美一二三四区在线| 一区二区三区在线看| 欧美性猛片aaaaaaa做受| 天堂蜜桃一区二区三区| 欧美一级搡bbbb搡bbbb| 日本成人超碰在线观看| 精品国产乱码久久久久久久| 国产综合色产在线精品| 久久久精品2019中文字幕之3| 五月婷婷激情综合| 99这里只有精品| 久久久精品综合| 狠狠色狠狠色合久久伊人| 久久久一区二区三区| www.日韩精品| 日韩一区精品视频| 精品99久久久久久| 天天影视色香欲综合网老头| 欧美视频一区二区三区| 天天综合网天天综合色| 久久久精品人体av艺术| 国产在线视视频有精品| 亚洲日本在线观看| 欧美变态口味重另类| 99久久伊人网影院| 最新高清无码专区| 色嗨嗨av一区二区三区| 久久超级碰视频| 亚洲精品在线观看网站| 色婷婷久久久亚洲一区二区三区 | 91九色最新地址| 蜜臀av一区二区在线免费观看| 欧美mv和日韩mv国产网站| 成人午夜大片免费观看| 亚洲人精品一区| 精品无人码麻豆乱码1区2区| 欧美一区日韩一区| 成人永久aaa| 国产视频不卡一区| 黑人精品欧美一区二区蜜桃 | 久久影音资源网| 成人av中文字幕| 亚洲国产va精品久久久不卡综合| 日韩精品最新网址| 成人永久看片免费视频天堂| 亚洲综合男人的天堂| 日韩欧美一二区| 蜜臀av亚洲一区中文字幕| 国产区在线观看成人精品| 国产一区二区成人久久免费影院| 在线视频国内一区二区| 亚洲激情在线播放| 91官网在线免费观看| 一区二区国产盗摄色噜噜| 91官网在线观看| 亚洲婷婷综合久久一本伊一区 | 成人精品在线视频观看| 亚洲成av人片一区二区| 国产亚洲欧美在线| 欧美男人的天堂一二区| 成人av网址在线| 日韩成人午夜精品| 91精品在线一区二区| 男人的天堂久久精品| 国产午夜亚洲精品不卡| 欧美丝袜丝交足nylons| 亚洲mv大片欧洲mv大片精品| 国产欧美日韩三级| 91精品国产一区二区| 九色综合国产一区二区三区| 久久久.com| 91理论电影在线观看| 国产精品影视天天线| 三级在线观看一区二区| 一区二区三区在线免费| 3atv一区二区三区| 91久久香蕉国产日韩欧美9色| 国产福利91精品一区二区三区| 午夜精品一区二区三区免费视频 | 亚洲欧洲制服丝袜| 国产精品久久久久精k8| 久久这里只有精品视频网| 欧美日本国产视频| 日韩精品每日更新| 亚洲尤物在线视频观看| 欧美一区二区在线免费播放| 国产91丝袜在线播放0| 亚洲图片一区二区| xnxx国产精品| 日韩三级在线观看| heyzo一本久久综合| 国产欧美va欧美不卡在线| 亚洲欧美日韩在线播放| 欧美国产亚洲另类动漫| 国产一区二区免费视频| 欧美日韩黄视频| 91麻豆国产自产在线观看| 日韩一区精品视频| 一区二区三区蜜桃网| 成人av电影在线网| 欧美精品一区二区三区很污很色的| 国产一区二区三区久久悠悠色av| 欧美日韩一区高清| 欧美在线免费观看亚洲| 99re66热这里只有精品3直播 | 美国一区二区三区在线播放| 午夜欧美在线一二页| 亚洲欧洲成人av每日更新| 色婷婷综合中文久久一本| 麻豆免费精品视频| 夜夜嗨av一区二区三区四季av | 欧美性大战久久久久久久蜜臀| 一本到不卡免费一区二区| 麻豆freexxxx性91精品| 一区二区三区精密机械公司| 亚洲一区影音先锋| 洋洋av久久久久久久一区| 国产精品久久久久久久久晋中| 久久久久久久久久看片| 欧美卡1卡2卡| 精品国精品国产| 欧美巨大另类极品videosbest | 韩国v欧美v日本v亚洲v| 午夜激情久久久| 亚洲精品高清在线| 免费高清成人在线| 一区二区三区欧美在线观看| 综合中文字幕亚洲| 精品国产麻豆免费人成网站| 国产偷国产偷亚洲高清人白洁| 欧美一区二区三区四区在线观看| 欧美午夜影院一区| 精品久久久久av影院| 国产精品欧美久久久久无广告| 国产精品久久国产精麻豆99网站| 久久亚洲捆绑美女| 久久精品一区二区三区不卡| 日韩美一区二区三区| 中文一区在线播放| 天堂蜜桃91精品| 婷婷夜色潮精品综合在线| 国产成人啪午夜精品网站男同| 老司机免费视频一区二区| 日韩av一级电影| 欧美激情一区不卡| 亚洲精品国产品国语在线app| 亚洲成a人v欧美综合天堂| 国产色产综合产在线视频| 欧美一区二区精品在线| 亚洲图片激情小说| 麻豆久久久久久| 欧美老女人第四色| 亚洲日韩欧美一区二区在线| 国产精品久久久久影院色老大| 中文字幕一区二区三| 欧美在线999| 日韩成人一级片| 日本aⅴ精品一区二区三区 | 成人午夜免费视频| 欧美乱妇15p| 日韩一区有码在线| 久久精品国产亚洲高清剧情介绍 | 亚洲精品一线二线三线| 亚洲精选免费视频| 国产乱码一区二区三区| 国内精品伊人久久久久影院对白| 国产一区二区按摩在线观看| 欧美日韩亚洲综合一区二区三区| 国产女同性恋一区二区| 综合久久久久久久| 国产一区在线观看视频| 宅男在线国产精品| 国产精品免费av| 国产一区二区免费在线| voyeur盗摄精品|