void Passwd(){ char oldpwd[30],newpwd[30],newpwd1[30]; account_t data=gl_CurUser; int i=MAX_TIMES,q=0; system("clear"); printf("\n\t\t=================================================================="); printf("\n\t\t***************************密码修改********************************"); printf("\n\t\t=================================================================="); printf("\n\t\t| 当前用户为:%s",gl_CurUser.username); cl_stdin(); while(i--){ printf("\n\t\t| 旧密码:"); getpwd(30,oldpwd); //input passwd if( strcmp(oldpwd,gl_CurUser.password)==0 ){ q=1; break; }else{ if(i>0){ printf("\n\n ------------用户名或密码错误!还可以输入%d次-------------",i); sleep(1); } } } while(q){ printf("\n\t\t| 新密码:"); //cl_stdin(); getpwd(30,newpwd); printf("\n\t\t| 再输一次:"); getpwd(30,newpwd1); if( strcmp(newpwd,newpwd1)==0 ){ strcpy(data.password,newpwd); if(Account_Srv_Modify(&data)){ gl_CurUser=data; printf("\n ----------------------------修改成功!------------------------------"); }else{ printf("\n ----------------------------修改失败!------------------------------"); } break; }else{ printf("\n\n -----------------两次新密码输入不一致!-------------------------"); sleep(1); } } sleep(1); }
//根据用户账号名修改用户账号密码,不存在这个用户账号名,提示出错信息 int Account_UI_Modify(account_list_t list ,char usrName[]) { account_node_t *temp; printf("请输入用户名\n"); fflush(stdin); scanf("%s",usrName); temp=(account_node_t *)malloc(sizeof(account_node_t)); temp=Account_Srv_FindByUsrName(list,usrName); if(temp==NULL) { printf("用户名不存在\n"); return 0; } else { printf("请输入您的新密码\n"); fflush(stdin); scanf("%s",temp->data.password); Account_Srv_Modify(&(temp->data)); printf("修改成功\n"); return 1; } return 1; }
//根据用户账号名修改用户账号密码,不存在这个用户账号名,提示出错信息 int Account_UI_Modify(account_list_t head,char usrName[]) { int er=0,ret=0,q=0; char choice; void Passwd(); Pagination_t paging; paging.totalRecords = Account_Srv_FetchAll(head); account_t data; if( Account_Srv_FetchByUsrName(usrName,&data) ){ if(gl_CurUser.id==data.id){ printf("\n ----------------------------没有权限!------------------------------"); cl_stdin(); getchar(); return 0; } while(1) { system("clear"); printf("\n\t\t=================================================================="); printf("\n\t\t***************************修改用户********************************"); printf("\n\t\t=================================================================="); printf("\n\t\t\t%s\t\t%s\t\t%s", "ID", "用户类型", "用户名"); printf("\n\t\t------------------------------------------------------------------"); printf("\n \033[31m**该功能涉及系统安全,请谨慎操作!**\033[0m\n"); printf("\n\t\t------------------------------------------------------------------"); printf("\n\t\t\t%d\t\t ", data.id); switch(data.type){ case USR_CLERK: printf("%s\t\t\t","CLERK"); break; case USR_MANG: printf("%s\t\t\t","MANG"); break; case USR_ADMIN: printf("%s\t\t\t","ADMIN"); break; } printf("%-20s", data.username); printf("\n =================================================================="); printf("\n |---------总数%2d------------------------------%2d/%2d页----------|",paging.totalRecords ,Pageing_CurPage(paging),Pageing_TotalPages(paging)); printf("\n ==================================================================");; printf("\n ******************************************************************"); printf("\n\t\t| [T]ype | [P]asswd | [R]eturn |"); printf("\n ******************************************************************"); printf("\n\t\tYour choice:"); choice=l_getc(); if('r'==choice || 'R'==choice) break; switch(choice){ case 'p': case 'P': Passwd(); /*{ char fpwd[30]spwd[30]; while(1){ printf("\n\t\t| 新密码:"); cl_stdin(); getpwd(30,fpwd); printf("\n\t\t|请再次输入新密码:"); getpwd(30spwd); if( strcmp(fpwdspwd)==0 ){ strcpy(data.password,fpwd); q=1; break; }else{ printf("\n\n -----------------两次新密码输入不一致!-------------------------"); } } }*/ break; case 't': case 'T': printf("\n -------[1].CLERK------------[2].MANG-------------[3].ADMAIN--------"); printf("\n | 请选择用户类型:"); while(1){ er=0; choice=l_getc(); switch(choice){ case '1': if(data.type!= USR_CLERK){ data.type= USR_CLERK; }else{ printf("\n ----------------------------类型相同!------------------------------"); } break; case '2': if(data.type!= USR_MANG){ data.type= USR_MANG; q=1; }else{ printf("\n ----------------------------类型相同!------------------------------"); q=0; } break; case '3': if(data.type!= USR_ADMIN){ data.type= USR_ADMIN; q=1; }else{ printf("\n ----------------------------类型相同!------------------------------"); q=0; } break; default : er=1; printf("\n\t\t **输入有误!** "); } if(er!=1) break; } break; } if(q && Account_Srv_Modify(&data)){ printf("\n ----------------------------修改成功!------------------------------"); ret=1; }else{ if(q!=0) printf("\n ----------------------------修改成功!------------------------------");; } cl_stdin(); sleep(1); } }else{ printf("\n ----------------------------未找到信息!------------------------------"); cl_stdin(); sleep(1); } return ret; }