group Module Jan Janak FhG FOKUS Edited by Jan Janak Copyright © 2003 FhG FOKUS _________________________________________________________ Table of Contents 1. User's Guide 1.1. Overview 1.2. Dependencies 1.2.1. SER Modules 1.2.2. External Libraries or Applications 1.3. Exported Parameters 1.3.1. db_url (string) 1.3.2. table (string) 1.3.3. user_column (string) 1.3.4. domain_column (string) 1.3.5. group_column (string) 1.3.6. use_domain (integer) 1.4. Exported Functions 1.4.1. is_user_in(URI, group) 2. Developer's Guide 3. Frequently Asked Questions List of Examples 1-1. Set db_url parameter 1-2. Set table parameter 1-3. Set user_column parameter 1-4. Set domain_column parameter 1-5. Set group_column parameter 1-6. Set use_domain parameter 1-7. is_user_in usage _________________________________________________________ Chapter 1. User's Guide 1.1. Overview This module export functions necesarry for group membership checking. There is a database table that contains list of users and groups they belong to. The table is used by functions of this module. _________________________________________________________ 1.2. Dependencies 1.2.1. SER Modules The following modules must be loaded before this module: * A database module. _________________________________________________________ 1.2.2. External Libraries or Applications The following libraries or applications must be installed before running SER with this module loaded: * None. _________________________________________________________ 1.3. Exported Parameters 1.3.1. db_url (string) URL of the database table to be used. Default value is "sql://serro:47serro11@localhost/ser". Example 1-1. Set db_url parameter ... modparam("group", "db_url", "sql://username:password@dbhost/ser") ... _________________________________________________________ 1.3.2. table (string) Name of the table holding groups and their members. Default value is "grp". Example 1-2. Set table parameter ... modparam("group", "table", "grp_table") ... _________________________________________________________ 1.3.3. user_column (string) Name of the column holding usernames. Default value is "username". Example 1-3. Set user_column parameter ... modparam("group", "user_column", "user") ... _________________________________________________________ 1.3.4. domain_column (string) Name of the column holding domains. Default value is "domain". Example 1-4. Set domain_column parameter ... modparam("group", "domain_column", "realm") ... _________________________________________________________ 1.3.5. group_column (string) Name of the column holding groups. Default value is "grp". Example 1-5. Set group_column parameter ... modparam("group", "group_column", "grp") ... _________________________________________________________ 1.3.6. use_domain (integer) If set to 1 then username@domain will be used for lookup, if set to 0 then only username will be used. Default value is 0 (no). Example 1-6. Set use_domain parameter ... modparam("group", "use_domain", 1) ... _________________________________________________________ 1.4. Exported Functions 1.4.1. is_user_in(URI, group) The function returns true if username in the given URI is member of the given group and false if not. Meaning of the parameters is as follows: * URI - URI whose username and optionally domain to be used, this can be one of: + Request-URI - Use Request-URI username and (optionally) domain. + To - Use To username and (optionally) domain. + From - Use From username and (optionally) domain. + Credentials - Use digest credentials username. * group - Name of the group to check. Example 1-7. is_user_in usage ... if (is_user_in("Request-URI", "ld")) { ... }; ... _________________________________________________________ Chapter 2. Developer's Guide The module does not provide any sort of API to use in other SER modules. _________________________________________________________ Chapter 3. Frequently Asked Questions 3.1. Where can I find more about SER? 3.2. Where can I post a question about this module? 3.3. How can I report a bug? 3.1. Where can I find more about SER? Take a look at http://iptel.org/ser. 3.2. Where can I post a question about this module? First at all check if your question was already answered on one of our mailing lists: * http://mail.iptel.org/mailman/listinfo/serusers * http://mail.iptel.org/mailman/listinfo/serdev E-mails regarding any stable version should be sent to and e-mail regarding development versions or CVS snapshots should be send to . If you want to keep the mail private, send it to . 3.3. How can I report a bug? Please follow the guidelines provided at: http://iptel.org/ser/bugs