Users
From Yate Documentation
(Difference between revisions)
(→Commands) |
|||
| 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). | ||
| + | |||
| + | '''Note:''' All database queries are done with PostgreSQL. | ||
| + | |||
| + | ===Example of create table users === | ||
| + | |||
| + | CREATE TABLE users ( | ||
| + | username text NOT NULL, | ||
| + | password text, | ||
| + | ); | ||
| + | ALTER TABLE public.users OWNER TO postgres; | ||
| + | |||
| + | ===Example of stored procedure for add_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; | ||
=== Configuration === | === Configuration === | ||
| Line 29: | Line 60: | ||
; 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}' | ||
| − | |||
===Commands=== | ===Commands=== | ||
Revision as of 16:44, 4 June 2013
This module configures the database account name and users management (add, update, remove and retrieve queries).
Note: All database queries are done with PostgreSQL.
Contents |
Example of create table users
CREATE TABLE users (
username text NOT NULL,
password text,
);
ALTER TABLE public.users OWNER TO postgres;
Example of stored procedure for add_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;
Configuration
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}'
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...]}
See also