| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 27.03.2015 12:15
Представим ситуацию, когда два пользователя одновременно пытаются зарегистрировать один и тот же логин:@userAdd[aOptions][k;v]
## Добавляет пользователя
## aOptions.login
## aOptions.password
## aOptions.isActive
## aOptions.<> - поля из _extraFields
## result[id пользователя]
$result[]
^cleanMethodArgument[]
^pfAssert:isTrue(def $aOptions.login)[Не задан login.]
^CSQL.safeInsert{
^CSQL.void{
insert into $_usersTable (^_extraFields.foreach[k;v]{^if(^aOptions.contains[$k]){`^if(def $v){$v}{$k}`, }} login, password, is_active)
values (^_extraFields.foreach[k;v]{^if(^aOptions.contains[$k]){"$aOptions.[$k]", }} "^taint[$aOptions.login]", "^taint[^passwordHash[$aOptions.password]]", "^aOptions.isActive.int(1)")
}
$result[^CSQL.lastInsertId[]]
}{
^throw[pfAuth.user.exists;Пользователь "$aOptions.login" уже есть в системе.]
}