Users
From Yate Documentation
(Difference between revisions)
(3 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | This module configures the database account name and users management (add, update, remove and retrieve queries). | + | This module configures the database account name and users management (add, update, remove and retrieve queries). This is done in configuration file: users.conf. |
'''Note:''' All database queries are done with PostgreSQL. | '''Note:''' All database queries are done with PostgreSQL. | ||
===Example of create table users === | ===Example of create table users === | ||
+ | |||
+ | This is an example of creating the users table: | ||
CREATE TABLE users ( | CREATE TABLE users ( | ||
Line 10: | Line 12: | ||
password text, | password text, | ||
); | ); | ||
− | + | ||
− | + | === Configuration file === | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === Configuration === | + | |
File users.conf | File users.conf | ||
Line 60: | Line 40: | ||
; select_user: string: Database query used to retrieve user's data | ; select_user: string: Database query used to retrieve user's data | ||
;select_user=SELECT * FROM users WHERE username='${user}' | ;select_user=SELECT * FROM users WHERE username='${user}' | ||
+ | |||
+ | |||
+ | ===Example of a stored procedure to add a user=== | ||
+ | |||
+ | This is an example of creating a stored procedure for adding a user: | ||
+ | |||
+ | CREATE FUNCTION user_add(text, text) RETURNS integer | ||
+ | AS $_$ | ||
+ | DECLARE | ||
+ | _username ALIAS FOR $1; | ||
+ | _password ALIAS FOR $2; | ||
+ | n integer; | ||
+ | BEGIN | ||
+ | SELECT INTO n COUNT(*) FROM users WHERE username=_username; | ||
+ | IF n > 0 THEN | ||
+ | n := 0; | ||
+ | ELSE | ||
+ | INSERT INTO users (username,password) VALUES (_username,_password); | ||
+ | n := 1; | ||
+ | END IF; | ||
+ | RETURN n; | ||
+ | END; | ||
+ | $_$ | ||
+ | LANGUAGE plpgsql; | ||
===Commands=== | ===Commands=== | ||
Line 66: | Line 70: | ||
users {add user [parameter=value...]|delete user|update user [parameter=value...]} | users {add user [parameter=value...]|delete user|update user [parameter=value...]} | ||
+ | |||
+ | Example of adding a user with password: | ||
+ | telnet 0 5038 | ||
+ | users add gigi@example.com password=pass1 | ||
+ | <users:ALL> parseParams(password=pass1) | ||
+ | <pgsqldb:ALL> Performing query "SELECT * FROM users WHERE username='gigi@example.com'" for 'jabberserver' | ||
+ | <pgsqldb:ALL> Query for 'jabberserver.1' returned 0 rows, 0 affected [0x95d6e10] | ||
+ | <pgsqldb:ALL> Performing query "SELECT * FROM user_add('gigi@example.com','pass1')" for 'jabberserver' | ||
+ | <pgsqldb:ALL> Query for 'jabberserver.1' returned 1 rows, 0 affected [0x95d6e10] | ||
+ | <users:ALL> Added user 'gigi@example.com' | ||
+ | users add succedded | ||
Latest revision as of 14:51, 5 June 2013
This module configures the database account name and users management (add, update, remove and retrieve queries). This is done in configuration file: users.conf.
Note: All database queries are done with PostgreSQL.
Contents |
[edit] Example of create table users
This is an example of creating the users table:
CREATE TABLE users ( username text NOT NULL, password text, );
[edit] Configuration file
File users.conf
; This file configures the users management module [database] ; This section configures user management database access ; account: string: The name of the database account ;account= ; add_user: string: Database query used to add a new user ; The query should fail if the user already exists ; Extra care must be taken when building this query: undesirable things may happen ; like replacing an existing user's password or adding a duplicate, unreachable, ; entry in the users table ;add_user=SELECT * FROM user_add('${user}','${password}') ; update_user: string: Database query used to update an existing user ;update_user=UPDATE users SET password='${password}' WHERE username='${user}' ; remove_user: string: Database query used to delete an existing user ;remove_user=DELETE FROM users WHERE username='${user}' ; select_user: string: Database query used to retrieve user's data ;select_user=SELECT * FROM users WHERE username='${user}'
[edit] Example of a stored procedure to add a user
This is an example of creating a stored procedure for adding a user:
CREATE FUNCTION user_add(text, text) RETURNS integer AS $_$ DECLARE _username ALIAS FOR $1; _password ALIAS FOR $2; n integer; BEGIN SELECT INTO n COUNT(*) FROM users WHERE username=_username; IF n > 0 THEN n := 0; ELSE INSERT INTO users (username,password) VALUES (_username,_password); n := 1; END IF; RETURN n; END; $_$ LANGUAGE plpgsql;
[edit] Commands
From telnet the command can be used to add/delete/update a user:
users {add user [parameter=value...]|delete user|update user [parameter=value...]}
Example of adding a user with password:
telnet 0 5038 users add gigi@example.com password=pass1 <users:ALL> parseParams(password=pass1) <pgsqldb:ALL> Performing query "SELECT * FROM users WHERE username='gigi@example.com'" for 'jabberserver' <pgsqldb:ALL> Query for 'jabberserver.1' returned 0 rows, 0 affected [0x95d6e10] <pgsqldb:ALL> Performing query "SELECT * FROM user_add('gigi@example.com','pass1')" for 'jabberserver' <pgsqldb:ALL> Query for 'jabberserver.1' returned 1 rows, 0 affected [0x95d6e10] <users:ALL> Added user 'gigi@example.com' users add succedded
See also