Архив рубрики: Павел

Mysql: Insert From Select

Иногда бывает необходимо вставить в одну таблицу, значение из другой таблицы. В MySQL это возможно как-то так:

insert into radpostauth (username,reply,authdate,ip,mac,session_id,comment) select username,'Access-Accept',now(),'172.31.64.10',mac,'','comment' from radcheck where mac='b8:69:f4:5a:45:5b'<br><br>


1С: файл не обнаружен AppAutoCheckMode

Ну собственно эта ошибка стала выводиться при запуске приложения «с ярлычка» пользователя, где прописан пусть для жесткого выбора базы данных, после последнего обновления.

Было:

"C:\Program Files (x86)\1cv8\common\1cestart.exe" /Slocalhost\roznica /ENTERPRISE

Стало:

"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /Slocalhost\roznica

Работаем с Router OS через API

Задача: организовать блокировку абонентов по «балансу», установка скорости интернета абонента, защита от «ручных IP». Биллинг: Lanbilling, Железка: Router OS

  1. Блокировка по «балансу»
Читать далее Работаем с Router OS через API

Настройка FreeRadius3 для авторизации Mikrotik DHCP+Radius Client

При следующей настройке Mikrotik:

И стандартных настройках FreeRadius мы получаем в атрибут User-Name, MAC адрес абонента. А User-Password — пустой. Нужно научить FreeRadius принимать пустые пароли. Самое простое, поправить default секцию authorize следующим образом:

authorize {

if(User-Name =~ /^([0-9A-F]{2}:?){6}$/ && User-Password == ''){
update request {
    User-Password = "123"
  }

    update control {
	Auth-Type := Accept
    }
}
...

, т.е. если мы видим что пришел User-Name MAC адрес, то мы подставляем ему пароль 123 и проводим авторизацию в любом случае, даже если данный MAC адрес не найден в базе (в этом случае ответ придет Accept, но без IP, который будет автоматом выдан из пула свободных DHCP).

При этом в БД в таблицу radreply нужно добавить строки следующего вида:

+----------+-------------------+---------------------+----+-------------+
| id       | username          | attribute           | op | value       |
+----------+-------------------+---------------------+----+-------------+
| 33727393 | 18:D6:C7:2A:5E:F5 | Mikrotik-Rate-Limit | := | 10M         |
| 33727396 | 18:D6:C7:2A:5E:F5 | Framed-IP-Address   | := | 10.30.100.3 |
+----------+-------------------+---------------------+----+-------------+

radtest b8:69:f4:5a:45:5b «» localhost 1812 secret123

Программная проверка пользователя 1С

Есть тысяча способов ограничить пользователя в 1С. Самый простой, если часть кода самописная, это «жесткая» привязка к конкретным пользователям. Например это можно сделать так:

&НаСервере
Функция ПроверитьПользователя(пользователь)
	рез=ложь;
	если пользователь=ПользователиИнформационнойБазы.ТекущийПользователь().Имя тогда
		рез=Истина;
	конецесли;		
	возврат рез;
конецфункции

&НаКлиенте
Процедура Моржа(Команда)	
	если ПроверитьПользователя("Администратор")=истина или ПроверитьПользователя("Помидоров")=истина или ПроверитьПользователя("Сантаклаусов")=истина тогда
	Форма=ПолучитьФорму("Обработка.ОтчетПоМоржеНовыйГрибов.Форма");	
		ДанныеФормы=Форма.Объект;
		//ДанныеФормы=РеализацияТовараНаСервере(ДанныеФормы);
		КопироватьДанныеФормы(ДанныеФормы,Форма.Объект);
	Форма.Открыть();
	иначе
		сообщить("Вам это не нужно..");
	конецесли;
КонецПроцедуры