From 4292386b6c91e5754e40478ee0ae40daf50490b9 Mon Sep 17 00:00:00 2001 From: markjcrane Date: Sun, 3 Apr 2016 11:47:06 -0600 Subject: [PATCH] Add users and groups php class. --- core/users/app_defaults.php | 2 +- resources/classes/groups.php | 180 +++++++++++++++++++++++++++++++++++ resources/classes/users.php | 76 +++++++++++++++ 3 files changed, 257 insertions(+), 1 deletion(-) create mode 100644 resources/classes/groups.php create mode 100644 resources/classes/users.php diff --git a/core/users/app_defaults.php b/core/users/app_defaults.php index df5bb12ba5..6c7a4d2202 100644 --- a/core/users/app_defaults.php +++ b/core/users/app_defaults.php @@ -156,7 +156,7 @@ if ($domains_processed == 1) { unset ($prep_statement); } - //if there are no permissions listed in v_group_permissions then set the default permissions + //if user_enabled is null then set to enabled true $sql = "select count(*) as count from v_users "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and user_enabled is null "; diff --git a/resources/classes/groups.php b/resources/classes/groups.php new file mode 100644 index 0000000000..d672ad01ba --- /dev/null +++ b/resources/classes/groups.php @@ -0,0 +1,180 @@ + + Portions created by the Initial Developer are Copyright (C) 2016 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + + +/** + * groups class provides methods for add, delete groups, and add default groups + * + * @method string add + * @method boolean delete + * @method boolean defaults + */ +class groups { + + /** + * Called when the object is created + */ + public function __construct() { + //place holder + } + + /** + * Called when there are no references to a particular object + * unset the variables used in the class + */ + public function __destruct() { + foreach ($this as $key => $value) { + unset($this->$key); + } + } + + /** + * add a group + */ + public function add() { + $id = uuid(); + //return $id; + return false; + } + + /** + * delete a group + */ + public function delete($id) { + return false; + } + + /** + * add defaults groups + */ + public function defaults() { + + //get the global database connection + global $db; + + //if the are no groups add the default groups + $sql = "SELECT * FROM v_groups "; + $sql .= "WHERE domain_uuid is null "; + $result = $db->query($sql)->fetch(); + $prep_statement = $db->prepare(check_sql($sql)); + if ($prep_statement) { + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC); + if (count($result) == 0) { + $x = 0; + $tmp[$x]['group_name'] = 'superadmin'; + $tmp[$x]['group_description'] = 'Super Administrator Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'admin'; + $tmp[$x]['group_description'] = 'Administrator Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'user'; + $tmp[$x]['group_description'] = 'User Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'public'; + $tmp[$x]['group_description'] = 'Public Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'agent'; + $tmp[$x]['group_description'] = 'Call Center Agent Group'; + $tmp[$x]['group_protected'] = 'false'; + $db->beginTransaction(); + foreach($tmp as $row) { + if (strlen($row['group_name']) > 0) { + $sql = "insert into v_groups "; + $sql .= "("; + $sql .= "domain_uuid, "; + $sql .= "group_uuid, "; + $sql .= "group_name, "; + $sql .= "group_description, "; + $sql .= "group_protected "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "null, "; + $sql .= "'".uuid()."', "; + $sql .= "'".$row['group_name']."', "; + $sql .= "'".$row['group_description']."', "; + $sql .= "'".$row['group_protected']."' "; + $sql .= ")"; + $db->exec($sql); + unset($sql); + } + } + $db->commit(); + } + unset($prep_statement, $result); + } + + //if there are no permissions listed in v_group_permissions then set the default permissions + $sql = "select count(*) as count from v_group_permissions "; + $sql .= "where domain_uuid is null "; + $prep_statement = $db->prepare($sql); + $prep_statement->execute(); + $result = $prep_statement->fetch(PDO::FETCH_ASSOC); + unset ($prep_statement); + if ($result['count'] == 0) { + //no permissions found add the defaults + $db->beginTransaction(); + foreach($apps as $app) { + foreach ($app['permissions'] as $row) { + foreach ($row['groups'] as $group) { + //add the record + $sql = "insert into v_group_permissions "; + $sql .= "("; + $sql .= "group_permission_uuid, "; + $sql .= "domain_uuid, "; + $sql .= "permission_name, "; + $sql .= "group_name "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "'".uuid()."', "; + $sql .= "null, "; + $sql .= "'".$row['name']."', "; + $sql .= "'".$group."' "; + $sql .= ")"; + $db->exec($sql); + unset($sql); + } + } + } + $db->commit(); + } + } + + +} //end scripts class + +/* +//example use + $group = new groups; + $group->defaults(); +*/ +?> \ No newline at end of file diff --git a/resources/classes/users.php b/resources/classes/users.php new file mode 100644 index 0000000000..807de878be --- /dev/null +++ b/resources/classes/users.php @@ -0,0 +1,76 @@ + + Portions created by the Initial Developer are Copyright (C) 2016 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + + +/** + * users class provides methods for adding and removing users + * + * @method string add + * @method boolean delete + */ +class users { + + /** + * Called when the object is created + */ + public function __construct() { + //place holder + } + + /** + * Called when there are no references to a particular object + * unset the variables used in the class + */ + public function __destruct() { + foreach ($this as $key => $value) { + unset($this->$key); + } + } + + /** + * add a user + */ + public function add($username, $password) { + $id = uuid(); + //return $id; + return false; + } + + /** + * delete a user + */ + public function delete($id) { + return false; + } + +} //end scripts class + +/* +//example use + $user = new users; + $user->add($username, $password); +*/ +?> \ No newline at end of file