| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 03.10.2003 13:49 / 03.10.2003 13:51
Нужно взять класс auth (у Миши), найти там метод insertUser и заменить это (старый код метода):################################################################################
# добавление пользователя
# 0 - all ok
# 1 - не задано имя, пароль или email в некоректном формате
# 2 - пользователь с таким именем уже существует
# 3 - неверно подтвержден пароль
@insertUser[user_data][exist]
^if(def $user_data.[auth.name] && ^is_email[$user_data.[auth.email]] && def $user_data.[auth.passwd]){
^rem{ *** правильно подтвержден пароль? *** }
^if($user_data.[auth.passwd] eq $user_data.[auth.passwd_confirm]){
^rem{ *** пароль подтвержден правильно. есть уже пользователь с таким именем? ***}
$exist(^csql.sql[int]{
SELECT
COUNT(*)
FROM
auser
WHERE
auser_type_id = $USER_ID AND
^csql.lower[name] = '^user_data.[auth.name].lower[]'
})
^if(!$exist){
^rem{ *** нету пользователя с таким именем, регистрируем ***}
^csql.sql[void]{
INSERT INTO auser (
auser_type_id,
name,
email,
passwd,
dt_register,
event_type
^if(def $user_data.[auth.rights]){, rights}
) VALUES (
$USER_ID,
'$user_data.[auth.name]',
'$user_data.[auth.email]',
'^cryptPassword[$user_data.[auth.passwd]]',
^csql.now[],
$new_user_event_type
^if(def $user_data.[auth.rights]){, '$user_data.[auth.rights]'}
)}
$new_user[
$.user_id(^csql.last_insert_id[auser])
$.name[$user_data.[auth.name]]
$.email[$user_data.[auth.email]]
$.rights[$user_data.rights]
]
$result(0)
^rem{ *** загружаем полный список групп *** }
^getGroups[]
^rem{ *** а теперь включаем вновь добавленного пользователя в группы, у которых установлен is_default *** }
^groups.menu{
^if($groups.is_default){
^csql.sql[void]{
INSERT INTO auser_to_auser (
auser_id,
parent_id
) VALUES (
$new_user.user_id,
$groups.group_id
)}
}
}
}{
^rem{ *** есть уже пользователь с таким именем ***}
$result(2)
}
}{
^rem{ *** неверно подтвержден пароль ***}
$result(3)
}
}{
^rem{ *** пришли неверные данные для регистрации: не задано имя/пароль или не валидный email ***}
$result(1)
}
^rem{ *** пишем в лог об этом событии *** }
^logEvent[
$.user_id(^new_user.user_id.int(0))
$.name[$user_data.[auth.name]]
$.email[$user_data.[auth.email]]
$.rights[$user_data.rights]
$.event_type[$EVENT.insert_user]
]($EVENT.insert_user)[$result]
#end @insertUser[]На вот это: ################################################################################
# добавление пользователя
# 0 - all ok
# 1 - не задано имя, пароль или email в некоректном формате
# 2 - пользователь с таким именем уже существует
# 3 - неверно подтвержден пароль
@insertUser[user_data][exist]
^if(def $user_data.[auth.name] && ^is_email[$user_data.[auth.email]] && def $user_data.[auth.passwd]){
^rem{ *** правильно подтвержден пароль? *** }
^if($user_data.[auth.passwd] eq $user_data.[auth.passwd_confirm]){
^rem{ *** пароль подтвержден правильно. есть уже пользователь с таким именем? ***}
^try{
^csql.sql[void]{
INSERT INTO auser (
auser_type_id,
name,
email,
passwd,
dt_register,
event_type
^if(def $user_data.[auth.rights]){, rights}
) VALUES (
$USER_ID,
'$user_data.[auth.name]',
'$user_data.[auth.email]',
'^cryptPassword[$user_data.[auth.passwd]]',
^csql.now[],
$new_user_event_type
^if(def $user_data.[auth.rights]){, '$user_data.[auth.rights]'}
)}
$new_user[
$.user_id(^csql.last_insert_id[auser])
$.name[$user_data.[auth.name]]
$.email[$user_data.[auth.email]]
$.rights[$user_data.rights]
]
$result(0)
^rem{ *** загружаем полный список групп *** }
^getGroups[]
^rem{ *** а теперь включаем вновь добавленного пользователя в группы, у которых установлен is_default *** }
^groups.menu{
^if($groups.is_default){
^csql.sql[void]{
INSERT INTO auser_to_auser (
auser_id,
parent_id
) VALUES (
$new_user.user_id,
$groups.group_id
)}
}
}
}{
^rem{ *** есть уже пользователь с таким именем ***}
$exception.handled(1)
$result(2)
}
}{
^rem{ *** неверно подтвержден пароль ***}
$result(3)
}
}{
^rem{ *** пришли неверные данные для регистрации: не задано имя/пароль или не валидный email ***}
$result(1)
}
^rem{ *** пишем в лог об этом событии *** }
^logEvent[
$.user_id(^new_user.user_id.int(0))
$.name[$user_data.[auth.name]]
$.email[$user_data.[auth.email]]
$.rights[$user_data.rights]
$.event_type[$EVENT.insert_user]
]($EVENT.insert_user)[$result]
#end @insertUser[]При добавлении пользователя, логин которого уже есть в БД, появится эта ошибка, - если поместить ^logEvent[...] в ^try все проходит нормально, - вам говорится что уже есть такой логин, правда при этом событие в лог по понятным причинам не пишется.