Users

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
 
(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,
 
  );
 
  );
  ALTER TABLE public.users OWNER TO postgres;
+
   
 
+
=== Configuration file ===
===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
 
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

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers