1 --DROP VIEW IF EXISTS usr;
2 --DROP FUNCTION IF EXISTS userCanLogin(TEXT);
3 CREATE OR REPLACE FUNCTION userCanLogin(pUsername TEXT) RETURNS BOOLEAN AS $$
4 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
5 -- See www.xtuple.com/CPAL for the full text of the software license.
10 IF (isDBA(pUsername) OR userCanCreateUsers(pUsername)) THEN
13 ELSIF (pg_has_role(pUsername, 'xtrole', 'member')) THEN
14 _mode := COALESCE(fetchMetricText('AllowedUserLogins'), '');
16 IF (_mode = 'AdminOnly') THEN
17 RETURN FALSE; -- administrators were checked above
20 IF (_mode NOT IN ('AdminOnly','ActiveOnly','Any')) THEN
21 _mode := 'ActiveOnly';
24 SELECT (usrpref_value = 't') INTO _isactive
26 WHERE usrpref_username = pUsername
27 AND usrpref_name = 'active';
29 IF (_isactive OR _mode = 'Any') THEN
36 $$ LANGUAGE 'plpgsql';