Delete_install.mod: You are not authorized to delete your se

Folosiţi acest forum pentru a discuta problemele apărute în timpul folosirii forumului phpBB 2.0.x.
Închis
Avatar utilizator
ciprianmp
Utilizator înregistrat
Mesaje: 21
Membru din: 28-Mar-2004, 19:19:30
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Bucureşti, România
Contact:

Delete_install.mod: You are not authorized to delete your se

Mesaj de ciprianmp »

Cand incerc sa imi editez datele in profil, desi sunt logat ca administrator, chiar si atunci cand schimb doar time zone sau altceva, primesc acest mesaj:

Cod: Selectaţi tot

You are not authorized to delete your self, or you have not completed registration
Am instalat modul delete_install, iar secventa de cod care-mi face chestia asta este:

Cod: Selectaţi tot

//
// Did the user submit? In this case build a query to update the users profile in the DB
//
if ( isset($HTTP_POST_VARS['submit']) )
{
	include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);

	$passwd_sql = '';
	if( isset($HTTP_POST_VARS['deleteuser']) && $HTTP_GET_VARS['mode'] == 'editprofile' && $userdata['user_level'] == 0 )
		{
			$sql = "SELECT g.group_id 
				FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g  
				WHERE ug.user_id = $user_id 
					AND g.group_id = ug.group_id 
					AND g.group_single_user = 1";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql);
			}

			$row = $db->sql_fetchrow($result);
			
			$sql = "UPDATE " . POSTS_TABLE . "
				SET poster_id = " . DELETED . ", post_username = '$username' 
				WHERE poster_id = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql);
			}

			$sql = "UPDATE " . TOPICS_TABLE . "
				SET topic_poster = " . DELETED . " 
				WHERE topic_poster = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql);
			}
			
			$sql = "UPDATE " . VOTE_USERS_TABLE . "
				SET vote_user_id = " . DELETED . "
				WHERE vote_user_id = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql);
			}
			
			$sql = "SELECT group_id
				FROM " . GROUPS_TABLE . "
				WHERE group_moderator = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql);
			}
			
			while ( $row_group = $db->sql_fetchrow($result) )
			{
				$group_moderator[] = $row_group['group_id'];
			}
			
			if ( count($group_moderator) )
			{
				$update_moderator_id = implode(', ', $group_moderator);
				
				$sql = "UPDATE " . GROUPS_TABLE . "
					SET group_moderator = " . $userdata['user_id'] . "
					WHERE group_moderator IN ($update_moderator_id)";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
				}
			}

			$sql = "DELETE FROM " . USERS_TABLE . "
				WHERE user_id = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . USER_GROUP_TABLE . "
				WHERE user_id = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . GROUPS_TABLE . "
				WHERE group_id = " . $row['group_id'];
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
				WHERE group_id = " . $row['group_id'];
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql);
			}
			
			$sql = "DELETE FROM " . BANLIST_TABLE . "
				WHERE ban_userid = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "SELECT privmsgs_id
				FROM " . PRIVMSGS_TABLE . "
				WHERE privmsgs_from_userid = $user_id 
					OR privmsgs_to_userid = $user_id";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql);
			}

			// This little bit of code directly from the private messaging section.
			while ( $row_privmsgs = $db->sql_fetchrow($result) )
			{
				$mark_list[] = $row_privmsgs['privmsgs_id'];
			}
			
			if ( count($mark_list) )
			{
				$delete_sql_id = implode(', ', $mark_list);
				
				$delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . "
					WHERE privmsgs_text_id IN ($delete_sql_id)";
				$delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . "
					WHERE privmsgs_id IN ($delete_sql_id)";
				
				if ( !$db->sql_query($delete_sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql);
				}
				
				if ( !$db->sql_query($delete_text_sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql);
				}
			}

			$message = $lang['User_deleted'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

			message_die(GENERAL_MESSAGE, $message);
		}
else if($userdata['user_level'] > 0 || $mode != 'editprofile' && $HTTP_POST_VARS['deleteuser'])
{
	message_die(GENERAL_MESSAGE, 'You are not authorized to delete your self, or you have not completed registration');
}
Inainte de a renunta la acest mod, poate deduce cineva care este eroarea in toata chestia asta?
E drept ca nu e singurul mod instalat, insa in panoul administratorului /users management nu da nici o eroare la modificarea profilului (deci nu e din baza de date). Acelasi lucru se intampla si cu userii obisnuiti. Astept o solutie. Merci.
Avatar utilizator
ciprianmp
Utilizator înregistrat
Mesaje: 21
Membru din: 28-Mar-2004, 19:19:30
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Bucureşti, România
Contact:

Scuze, nu citisem rubrica datele necesare...

Mesaj de ciprianmp »

URL: http://80.97.71.236:90/phpbb2/index.htm
Stilul folosit: sub_silver
Modificări instalate: delete_install si ... altele prea multe...
Versiunea phpBB: 2.0.8 (ar fi trebuit sa fie si "a"...)
Versiunea of PHP: 4.3.6 RC2
Serverul de bază de date şi versiunea: MySQL 4.0.18
Hostul: localhost
Dacă e instalat de către cineva de la phpbb.ro sau nu: nu
Dacă e un upgrade de la o versiune anterioară: nu
Dacă e o conversie dintr-un alt forum şi care anume: nu
Dacă ai căutat la phpbb.ro rezolvarea prin "Căutare" şi Catalogul de articole: da
Dacă da, ce termeni ai folosit: Textul erorii integral... = 60 rezultate neconcludente
Avatar utilizator
BuGsY
Fost coleg
Mesaje: 1193
Membru din: 19-Iun-2003, 15:24:49
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Constanţa
Contact:

Mesaj de BuGsY »

În mod normal problema este legata de mică neatenţie undeva pe la linia 395 a fişierului usercp_register.php. Astfel dacă găseşti linia:

Cod: Selectaţi tot

$userdata['user_level'] > 0 || $mode != 'editprofile'
încearcă să o înlocuieşti cu:

Cod: Selectaţi tot

($userdata['user_level'] > 0 || $mode != 'editprofile')
Linia cu pricina se găseşte şi la tine.. este printer ultimile.
Avatar utilizator
ciprianmp
Utilizator înregistrat
Mesaje: 21
Membru din: 28-Mar-2004, 19:19:30
Ext: Nu
Server: Windows
Nivel phpBB: Mediu
Nivel php: Mediu
Localitate: Bucureşti, România
Contact:

Ai avut dreptate!

Mesaj de ciprianmp »

BuGsY, am inchis cele doua paranteze si acum partea finala arata asa:

Cod: Selectaţi tot

	else if(($userdata['user_level'] > 0 || $mode != 'editprofile') && $HTTP_POST_VARS['deleteuser'])
{
	message_die(GENERAL_MESSAGE, 'You are not authorized to delete your self, or you have not completed registration');
}
Multumesc frumos, asta a fost rezolvarea! Merge :)
Închis

Înapoi la “2.0.x Funcţionare”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 2 vizitatori