Alexander Clouter wrote:

I thought I remembered this popping up recently, I would have mentioned it earlier but my Google-Fu at the time was weak and I though I was imagining things.

If you checkout v2.1.x[1] and then type:
----
$ git checkout -b foreach
$ git cherry-pick a3221304
$ git cherry-pick 11aa4442
$ git cherry-pick ba18f024
$ git cherry-pick de60e732
$ <mumble, compile, mumble, install, mumble>
----

It will either:
 * give you foreach[2] ('man 5 unlang')
 * make your pants explode[3]

Cheers

[1] http://git.freeradius.org/
[2] 
http://freeradius.1045715.n5.nabble.com/regex-matching-can-be-convinced-to-be-TRUE-if-you-re-insistive-enough-td4422200.html
[3] http://www.youtube.com/watch?v=Ysw4Xv6JI_w (0:00 -> 0:30 seconds)

Thanks for the heads-up. I know this won't be of much help to anyone else as a generic solution, but in a rlm_perl-induced fit of rage (I have about as much experience with and fondness for perl as ... someone who has nothing of something) I decided to step back and whiteboard the problem. I ended up managing to get a hold of the department that runs LDAP, got a list of all of the possible attribute values, and just did a
update reply {
employeeType -= badValueHere
}
to get rid of the values I don't want, before doing case-insensitive regex string comparisons on reply:employeeType[*]. With a default of reject (oversimplified) this works fine.

But thanks to everyone for the advice... hopefully it will be useful for the next person with these questions.

-Jason Antman

PS - Unfortunately my overcomplicated unlang authenticate{} section is because I'm required to log to SQL in realtime (i.e. not parsing text log files) the result of each authentication attempt, and *why* - i.e. what specific rule was used to deny someone access, or what rule triggered successful authentication. FreeRadius doesn't seem to have any support for this, other than lots of updates{} to custom local attributes.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to