Esempio n. 1
0
int GetAuthorization(const char *login, const char *password)
{
//	printf("incoming login [%s], password [%s]\n", login, password);
	const char *auth_names[4];
	int adm_level=0;
	auth_names[0]="view";
	auth_names[1]="paycheck";
	auth_names[2]="control";
	auth_names[3]="admin";
	sem_wait(&users_lock);
	for (int i=0; i<4; i++)
	{
		const char *tmp=NULL;
		if ((tmp=users.GetValue(login,auth_names[i]))!=NULL)
		{
			char md5_inc[1024];
			if (CreateMD5HexSign(password, md5_inc, 1023)==0)
			{
				if (strcmp(tmp, md5_inc)==0)
					adm_level=i+1;
			}
		}
	}
	sem_post(&users_lock);
//	printf("returning %i\n", adm_level);
	return adm_level;
}