Selaa lähdekoodia

fixed sync user with non existing group

Piotr Labudda 9 vuotta sitten
vanhempi
commit
bf07665f9a
2 muutettua tiedostoa jossa 41 lisäystä ja 39 poistoa
  1. 21 20
      SE/se-lib/Route/Users.php
  2. 20 19
      SE/se-lib/UserStorageMacOSX.php

+ 21 - 20
SE/se-lib/Route/Users.php

@@ -9,6 +9,7 @@ Lib::loadClass('UsersLdapHelper');
 Lib::loadClass('TypespecialVariable');
 Lib::loadClass('TableAjax');
 Lib::loadClass('UserActivity');
+Lib::loadClass('UI');
 
 class Route_Users extends RouteBase {
 
@@ -19,10 +20,10 @@ class Route_Users extends RouteBase {
 	}
 
 	public function defaultAction() {
-		SE_Layout::gora();
-		SE_Layout::menu();
+		UI::gora();
+		UI::menu();
 		$this->menu();
-		SE_Layout::dol();
+		UI::dol();
 	}
 
 	public function menu() {
@@ -86,8 +87,8 @@ class Route_Users extends RouteBase {
 			$data['errors'][] = $e->getMessage();
 		}
 
-		SE_Layout::gora();
-		SE_Layout::menu();
+		UI::gora();
+		UI::menu();
 		?>
 		<div class="container">
 			<div class="alert alert-success" title="<?php echo number_format($fixAllPermsExecTime, 4); ?> s / <?php echo number_format($fixUserPermsExecTime, 4); ?> s">
@@ -95,13 +96,13 @@ class Route_Users extends RouteBase {
 			</div>
 		</div>
 		<?php
-		SE_Layout::loadTemplate('defaultPage', $data);
-		SE_Layout::dol();
+		UI::loadTemplate('defaultPage', $data);
+		UI::dol();
 	}
 
 	public function nestedGroupsAction() {
-		SE_Layout::gora();
-		SE_Layout::menu();
+		UI::gora();
+		UI::menu();
 		echo '<div class="container">';
 		try {
 			$idGroup = V::get('idGroup', 0, $_GET, 'int');
@@ -136,7 +137,7 @@ class Route_Users extends RouteBase {
 			echo UserActivity::showListInContainer();
 		}
 		echo '</div>';// .container
-		SE_Layout::dol();
+		UI::dol();
 	}
 
 	public function nestedGroupsRemoveParentGroup($idGroup, $idParentGroupToRemove) {
@@ -473,8 +474,8 @@ class Route_Users extends RouteBase {
 	}
 
 	public function userGroupsAction() {
-		SE_Layout::gora();
-		SE_Layout::menu();
+		UI::gora();
+		UI::menu();
 		$usrLogin = V::get('usrLogin', '', $_GET);
 		echo '<div class="container">';
 		try {
@@ -498,7 +499,7 @@ class Route_Users extends RouteBase {
 			echo UserActivity::showListInContainer();
 		}
 		echo '</div>';// .container
-		SE_Layout::dol();
+		UI::dol();
 	}
 
 	public function printFormUserGroup($usrLogin) {
@@ -733,8 +734,8 @@ class Route_Users extends RouteBase {
 		$idGroup = V::get('idGroup', 0, $_GET, 'int');
 		$group = null;
 
-		SE_Layout::gora();
-		SE_Layout::menu();
+		UI::gora();
+		UI::menu();
 		echo '<div class="container">';
 		try {
 			if (!$idGroup) throw new Exception("Brak numeru grupy!");
@@ -757,7 +758,7 @@ class Route_Users extends RouteBase {
 			?><div class="alert alert-danger"><?php echo $e->getMessage(); ?></div><?php
 		}
 		echo '</div>';// .container
-		SE_Layout::dol();
+		UI::dol();
 	}
 
 	public function syncGroup($idGroup) {
@@ -823,8 +824,8 @@ class Route_Users extends RouteBase {
 	}
 
 	public function syncUserAction() {
-		SE_Layout::gora();
-		SE_Layout::menu();
+		UI::gora();
+		UI::menu();
 		$usrLogin = V::get('usrLogin', '', $_GET);
 		echo '<div class="container">';
 		try {
@@ -867,7 +868,7 @@ class Route_Users extends RouteBase {
 			?><div class="alert alert-danger"><?php echo $e->getMessage(); ?></div><?php
 		}
 		echo '</div>';// .container
-		SE_Layout::dol();
+		UI::dol();
 	}
 
 	public function syncUser($userName, $usrStorageDB, $usrStorageLdap) {
@@ -878,7 +879,7 @@ class Route_Users extends RouteBase {
 		$synUsers = new SyncUsers($usrStorageDB, $usrStorageLdap);
 
 		if ('1' == V::get('_runSync', '', $_POST)) {
-			$synced = $synUsers->syncUser($userName, $syncGroups = true, $syncDisabled = true);
+			$synced = $synUsers->syncUser($userName);
 			if (!$synced) {
 				?>
 				<div class="alert alert-danger">

+ 20 - 19
SE/se-lib/UserStorageMacOSX.php

@@ -341,9 +341,9 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * User group list by id.
-	 * 
+	 *
 	 * @param bool $fetchNested - contain all groups below connected groups and group PODMIOT from above.
-	 * 
+	 *
 	 * @return array with group objects @see getGroup
 	 */
 	public function getUserGroups($usrLogin, $fetchNested = false) {
@@ -371,10 +371,10 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Build network group object.
-	 * 
+	 *
 	 * @param object $groupDB {ID, DESC} @see _getUserGroupsAll
 	 * @return object $group @see getGroup
-	 * 
+	 *
 	 * Example: _buildGroupFromLdap($groupLdap) => {@see getGroup}
 	 */
 	private function _buildGroupFromLdap($groupLdap, $fetchNested = false) {
@@ -534,10 +534,10 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Create group.
-	 * 
+	 *
 	 * @param object $group @see getGroup
 	 * @return bool
-	 * 
+	 *
 	 * @require $group->zasobID - Allowed only network group based on Zasob.
 	 */
 	public function createGroup(ObjectGroup $group) {
@@ -553,13 +553,13 @@ class UserStorageMacOSX extends UserStorageBase {
 		 *   The group extragroup is created from the node /LDAPv3/ldap.company.com with the realname, comment,
 		 *   timetolive (instead of default of 14400 = 4 hours), and keyword atttribute values given above if the user
 		 *   myusername has supplied a correct password and has write access.
-		 * 
+		 *
 		 * -r realname
 		 *   This is a simple text string.
-		 * 
+		 *
 		 * -t recordtype
 		 *   The type of the record to be added to or deleted from the group specified by groupname. Valid values are user, computer, group, or computergroup.
-		 * 
+		 *
 		 */
 		$cmd = "dseditgroup -o create -n /LDAPv3/127.0.0.1 -u {$this->_rootUser} -P {$this->_rootPass} -r \"{$groupName}\" {$groupUidGenerated}";
 		$cmdOut = null; $cmdRet = null;
@@ -590,13 +590,13 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Add local group member.
-	 * 
+	 *
 	 * @param string $usrLogin - user login
 	 * @param object $group - @see getGroup
 	 * @return bool
-	 * 
+	 *
 	 * @require sudoers dla _www
-	 * 
+	 *
 	 * cat /etc/sudoers |grep "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su" || echo "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su " >> /etc/sudoers;
 	 * cat /etc/sudoers |grep "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su"
 	 * cat /etc/sudoers |grep "_www ALL = NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/calendarserver_manage_principals" || echo "_www ALL = NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/calendarserver_manage_principals " >> /etc/sudoers;
@@ -607,7 +607,7 @@ class UserStorageMacOSX extends UserStorageBase {
 	 * cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/pwpolicy";
 	 * cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/createhomedir" || echo "_www ALL = NOPASSWD: /usr/sbin/createhomedir" >> /etc/sudoers;
 	 * cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/createhomedir";
-	 * 
+	 *
 	 * cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/dseditgroup" || echo "_www ALL = NOPASSWD: /usr/sbin/dseditgroup" >> /etc/sudoers;
 	 * cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/dseditgroup";
 	 */
@@ -625,7 +625,7 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Remove local group member.
-	 * 
+	 *
 	 * @param string $usrLogin - user login
 	 * @param object $group - @see getGroup
 	 * @return bool
@@ -688,7 +688,7 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Add network group member.
-	 * 
+	 *
 	 * @param string $usrLogin - user login
 	 * @param object $group - @see getGroup
 	 * @return bool
@@ -714,6 +714,8 @@ class UserStorageMacOSX extends UserStorageBase {
 			}
 
 			$this->createGroup($group);
+			$groupRealUid = $this->findGroupUid($groupUid);
+			if (!$groupRealUid) throw new Exception("Nie udało się utworzyć grupy sieciowej '{$group->primaryKey}'");
 		}
 
 		$cmdDsclAuth = "dscl -u {$this->_rootUser} -P {$this->_rootPass} /LDAPv3/127.0.0.1 ";
@@ -727,7 +729,7 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Remove network group member.
-	 * 
+	 *
 	 * @param string $usrLogin - user login
 	 * @param object $group - @see getGroup
 	 * @return bool
@@ -760,7 +762,7 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Add group member.
-	 * 
+	 *
 	 * @param string $usrLogin - user login
 	 * @param object $group - @see getGroup
 	 * @return bool
@@ -776,7 +778,7 @@ class UserStorageMacOSX extends UserStorageBase {
 
 	/**
 	 * Remove group member.
-	 * 
+	 *
 	 * @param string $usrLogin - user login
 	 * @param object $group - @see getGroup
 	 * @return bool
@@ -907,4 +909,3 @@ class UserStorageMacOSX extends UserStorageBase {
 	}
 
 }
-