Ver Fonte

Make sure the user extension arrray exists on the initial login.

markjcrane há 9 anos atrás
pai
commit
c3f5d266d2
1 ficheiros alterados com 56 adições e 0 exclusões
  1. 56 0
      resources/check_auth.php

+ 56 - 0
resources/check_auth.php

@@ -399,6 +399,62 @@ require_once "resources/require.php";
 				}
 			}
 
+		//get the extensions that are assigned to this user
+			if (file_exists($_SERVER["PROJECT_ROOT"]."/app/extensions/app_config.php")) {
+				if (isset($_SESSION["user"]) && isset($_SESSION["user_uuid"]) && $db && strlen($_SESSION["domain_uuid"]) > 0 && strlen($_SESSION["user_uuid"]) > 0 && count($_SESSION['user']['extension']) == 0) {
+					//get the user extension list
+						unset($_SESSION['user']['extension']);
+						$sql = "select ";
+						$sql .= "	e.extension, ";
+						$sql .= "	e.number_alias, ";
+						$sql .= "	e.user_context, ";
+						$sql .= "	e.extension_uuid, ";
+						$sql .= "	e.outbound_caller_id_name, ";
+						$sql .= "	e.outbound_caller_id_number, ";
+						$sql .= "	v.voicemail_uuid ";
+						$sql .= "from ";
+						$sql .= "	v_extension_users as u, ";
+						$sql .= "	v_extensions as e ";
+						$sql .= "		left outer join v_voicemails as v on ( ";
+						$sql .= "			e.domain_uuid = v.domain_uuid ";
+						$sql .= "			and v.voicemail_enabled = 'true' ";
+						$sql .= "			and ( ";
+						$sql .= "				e.extension = v.voicemail_id ";
+						$sql .= "				or e.number_alias = v.voicemail_id ";
+						$sql .= "			) ";
+						$sql .= "		) ";
+						$sql .= "where ";
+						$sql .= "	e.domain_uuid = '".$_SESSION['domain_uuid']."' ";
+						$sql .= "	and e.extension_uuid = u.extension_uuid ";
+						$sql .= "	and u.user_uuid = '".$_SESSION['user_uuid']."' ";
+						$sql .= "	and e.enabled = 'true' ";
+						$sql .= "order by ";
+						$sql .= "	e.extension asc ";
+						$query = $db->query($sql);
+						if($query !== false) {
+							$result = $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
+							$x = 0;
+							foreach($result as $row) {
+								$destination = $row['extension'];
+								if (strlen($row['number_alias']) > 0) {
+									$destination = $row['number_alias'];
+								}
+								$_SESSION['user']['extension'][$x]['user'] = $row['extension'];
+								$_SESSION['user']['extension'][$x]['number_alias'] = $row['number_alias'];
+								$_SESSION['user']['extension'][$x]['destination'] = $destination;
+								$_SESSION['user']['extension'][$x]['extension_uuid'] = $row['extension_uuid'];
+								$_SESSION['user']['extension'][$x]['outbound_caller_id_name'] = $row['outbound_caller_id_name'];
+								$_SESSION['user']['extension'][$x]['outbound_caller_id_number'] = $row['outbound_caller_id_number'];
+								if ($row['voicemail_uuid'] != '') {
+									$_SESSION['user']['voicemail'][]['voicemail_uuid'] = $row['voicemail_uuid'];
+								}
+								$_SESSION['user_context'] = $row["user_context"];
+								$x++;
+							}
+						}
+				}
+			}
+
 		//redirect the user
 			if (check_str($_REQUEST["rdr"]) !== 'n'){
 				$path = check_str($_POST["path"]);