| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Immortal 18.06.2003 12:45
# Класс для управления пользователями
# Copyright (c) 2003 Immortal
@CLASS
user
#################################
## конструктор
# без параметров нужен для вывода списка юзеров,
# с параметром $user загружает инфу о конкретном юзере
@load[user][user]
^if(def $user){
$result[^table::sql{
SELECT
login,
passwd,
user_group,
user_status,
f_name,
s_name,
l_name,
email
FROM
a_users
WHERE
login = '$user'
}
]
}{
$result[^table::sql{
SELECT
login,
passwd,
user_group,
user_status,
f_name,
s_name,
l_name,
email
FROM
a_users
ORDER BY
user_group,
l_name,
s_name,
f_name
}
]
}
#################################
## метод редактирования пользователя
@edit[][crypted]
^if(def $form:POST){
^if(def $form:login && def $form:passwd){
$crypted[^math:crypt[$form:passwd;^$apr1^$]]
^void:sql{
UPDATE
t_users
SET
login = '$form:login',
passwd = '$crypted',
user_group = '$form:user_group',
user_status = '$form:user_status',
f_name = ^if(def $form:f_name){'$form:f_name'}{'n/a'},
s_name = ^if(def $form:s_name){'$form:s_name'}{'n/a'},
l_name = ^if(def $form:l_name){'$form:l_name'}{'n/a'},
email = ^if(def $form:email){'$form:email'}{'n/a'}
WHERE
login = '$form:login'
}
$response:body[^skiner[user/ok]]
}{
$response:body[^skiner[user/not_all_fields]]
}
}
#################################
## статический метод "заморозки" пользователя
@disable[user]
^void:sql{UPDATE a_users SET user_status = 'frozen' WHERE login='$user'}
#################################
## статический метод "разморозки" пользователя
@enable[user]
^void:sql{UPDATE a_users SET user_status = 'active' WHERE login='$user'}
#################################
## статический метод удаления пользователя
@delete[user]
^void:sql{DELETE FROM a_users WHERE login = '$user'}
#################################
## статический метод добавления пользователя
@add[][crypted]
^if(def $form:POST){
^if(def $form:login && def $form:passwd){
^if(^MAIN:users.locate[login;$form:login]){
$response:body[^skiner[user/user_present]]
}{
$crypted[^math:crypt[$form:passwd;^$apr1^$]]
^void:sql{
INSERT
INTO a_users
SET
login = '$form:login',
passwd = '$crypted',
user_group = '$form:user_group',
user_status = '$form:user_status',
f_name = ^if(def $form:f_name){'$form:f_name'}{'n/a'},
s_name = ^if(def $form:s_name){'$form:s_name'}{'n/a'},
l_name = ^if(def $form:l_name){'$form:l_name'}{'n/a'},
email = ^if(def $form:email){'$form:email'}{'n/a'}
}
$response:body[^skiner[user/ok]]
}
}{
# если не все обязательные поля заполнены
$response:body[^skiner[user/not_all_fields]]
}
}