Bläddra i källkod

Demo mode: prevent the deletion of Users...

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3452 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 10 år sedan
förälder
incheckning
a598b90118

+ 13 - 0
addons/userrights/userrightsprofile.class.inc.php

@@ -271,6 +271,19 @@ class URP_UserProfile extends UserRightsBaseClassGUI
 	{
 		return Dict::Format('UI:UserManagement:LinkBetween_User_And_Profile', $this->Get('userlogin'), $this->Get('profile'));
 	}
+
+	public function CheckToDelete(&$oDeletionPlan)
+	{
+		if (MetaModel::GetConfig()->Get('demo_mode'))
+		{
+			// Users deletion is NOT allowed in demo mode
+			$oDeletionPlan->AddToDelete($this, null);
+			$oDeletionPlan->SetDeletionIssues($this, array('deletion not allowed in demo mode.'), true);
+			$oDeletionPlan->ComputeResults();
+			return false;
+		}
+		return parent::CheckToDelete($oDeletionPlan);
+	}
 }
 
 class URP_UserOrg extends UserRightsBaseClassGUI

+ 1 - 1
core/dbobject.class.php

@@ -1226,7 +1226,7 @@ abstract class DBObject implements iDisplay
 		}
 	}
 
-  	final public function CheckToDelete(&$oDeletionPlan)
+  	public function CheckToDelete(&$oDeletionPlan)
   	{
 		$this->MakeDeletionPlan($oDeletionPlan);
 		$oDeletionPlan->ComputeResults();

+ 23 - 0
core/userrights.class.inc.php

@@ -347,6 +347,29 @@ abstract class User extends cmdbAbstractObject
 			}					
 		}
 	}
+	
+  	public function CheckToDelete(&$oDeletionPlan)
+  	{
+  		if (MetaModel::GetConfig()->Get('demo_mode'))
+		{
+			// Users deletion is NOT allowed in demo mode
+			$oDeletionPlan->AddToDelete($this, null);
+			$oDeletionPlan->SetDeletionIssues($this, array('deletion not allowed in demo mode.'), true);
+			$oDeletionPlan->ComputeResults();
+			return false;
+		}
+		return parent::CheckToDelete($oDeletionPlan);
+  	} 
+	
+	protected function DBDeleteSingleObject()
+	{
+		if (MetaModel::GetConfig()->Get('demo_mode'))
+		{
+			// Users deletion is NOT allowed in demo mode
+			return;
+		}
+		parent::DBDeleteSingleObject();
+	}
 }
 
 /**