| 
					
				 | 
			
			
				@@ -449,18 +449,26 @@ function keycloak_mbox_login_rest($user, $pass, $extra = null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // get mapped template, if not set return false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // also return false if no mappers were defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // get mapped template 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $user_template = $user_res['attributes']['mailcow_template'][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($create && (empty($iam_settings['mappers']) || !$user_template)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } else if (!$create) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // login success - dont create mailbox 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $mapper_key = array_search($user_template, $iam_settings['mappers']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!$create) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // login success 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($mapper_key !== false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // update user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      mailbox('edit', 'mailbox_from_template', array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'username' => $user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'name' => $user_res['name'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'template' => $iam_settings['templates'][$mapper_key], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'hasAccess' => true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return 'user'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // check if matching attribute exist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $mapper_key = array_search($user_template, $iam_settings['mappers']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (empty($iam_settings['mappers']) || !$user_template) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if ($mapper_key === false) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // create mailbox 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -469,7 +477,8 @@ function keycloak_mbox_login_rest($user, $pass, $extra = null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'local_part' => explode('@', $user)[0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'name' => $user_res['name'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'authsource' => 'keycloak', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'template' => $iam_settings['templates'][$mapper_key] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'template' => $iam_settings['templates'][$mapper_key], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'hasAccess' => true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!$create_res) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -536,18 +545,26 @@ function ldap_mbox_login($user, $pass, $extra = null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // get mapped template, if not set return false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // also return false if no mappers were defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // get mapped template 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $user_template = $user_res[$iam_settings['attribute_field']][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($create && (empty($iam_settings['mappers']) || !$user_template)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } else if (!$create) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // login success - dont create mailbox 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $mapper_key = array_search($user_template, $iam_settings['mappers']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!$create) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // login success 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($mapper_key !== false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // update user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      mailbox('edit', 'mailbox_from_template', array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'username' => $user, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'name' => $user_res['displayname'][0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'template' => $iam_settings['templates'][$mapper_key], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'hasAccess' => true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return 'user'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // check if matching attribute exist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $mapper_key = array_search($user_template, $iam_settings['mappers']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (empty($iam_settings['mappers']) || !$user_template) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if ($mapper_key === false) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // create mailbox 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -556,7 +573,8 @@ function ldap_mbox_login($user, $pass, $extra = null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'local_part' => explode('@', $user)[0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'name' => $user_res['displayname'][0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'authsource' => 'ldap', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'template' => $iam_settings['templates'][$mapper_key] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'template' => $iam_settings['templates'][$mapper_key], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'hasAccess' => true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!$create_res) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |