gnome-schedule r1084 - in trunk: . src



Author: gauteh
Date: Mon Mar 17 15:29:12 2008
New Revision: 1084
URL: http://svn.gnome.org/viewvc/gnome-schedule?rev=1084&view=rev

Log:
Setting the right permission on datafiles when editing as root.

Modified:
   trunk/ChangeLog
   trunk/src/at.py
   trunk/src/crontab.py

Modified: trunk/src/at.py
==============================================================================
--- trunk/src/at.py	(original)
+++ trunk/src/at.py	Mon Mar 17 15:29:12 2008
@@ -64,12 +64,17 @@
 		
 		self.atdatafileversion = 3
 		self.atdata = self.user_home_dir + "/.gnome/gnome-schedule/at"
+		if os.path.exists (self.user_home_dir + "/.gnome") != True:
+			os.mkdir (self.user_home_dir + "/.gnome", 0700)
+			os.chown (self.user_home_dir + "/.gnome", self.uid, self.gid)
 		if os.path.exists(self.atdata) != True:
-			if os.makedirs(self.atdata, 0700):
-				pass
-			else:
-				pass
-				# FAILED TO CREATE DATADIR
+			try:
+				os.makedirs(self.atdata, 0700)
+				if self.root == 1:
+					os.chown (self.user_home_dir + "/.gnome/gnome-schedule", self.uid, self.gid)
+					os.chown (self.atdata, self.uid, self.gid)
+			except:
+				print _("Failed to create data dir! Make sure ~/.gnome and ~/.gnome/gnome-schedule are writable.")
 				
 		self.months = {
 			'Jan' : '1',
@@ -92,6 +97,17 @@
 		self.gid = gid
 		self.user_home_dir = ud
 		self.atdata = self.user_home_dir + "/.gnome/gnome-schedule/at"
+		if os.path.exists (self.user_home_dir + "/.gnome") != True:
+			os.mkdir (self.user_home_dir + "/.gnome", 0700)
+			os.chown (self.user_home_dir + "/.gnome", self.uid, self.gid)
+		if os.path.exists(self.atdata) != True:
+			try:
+				os.makedirs(self.atdata, 0700)
+				if self.root == 1:
+					os.chown (self.user_home_dir + "/.gnome/gnome-schedule", self.uid, self.gid)
+					os.chown (self.atdata, self.uid, self.gid)
+			except:
+				print (_("Failed to create data dir: %s. Make sure ~/.gnome and ~/.gnome/gnome-schedule are writable.") % (self.atdata))
 
 	
 	def get_type (self):
@@ -220,6 +236,8 @@
 		else:
 			fh.write ("manual_poscorrect=false\n")
 		fh.close ()
+		os.chown (f, self.uid, self.gid)
+		os.chmod (f, 0600)
 			
 	def checkfield (self, runat):
 		#TODO: fix bug $0:19 2004-12-8$ not valid by regexp

Modified: trunk/src/crontab.py
==============================================================================
--- trunk/src/crontab.py	(original)
+++ trunk/src/crontab.py	Mon Mar 17 15:29:12 2008
@@ -44,12 +44,17 @@
 		self.crontabdata = self.user_home_dir + "/.gnome/gnome-schedule/crontab"
 		self.crontabdatafileversion = 3
 		
+		if os.path.exists (self.user_home_dir + "/.gnome") != True:
+			os.mkdir (self.user_home_dir + "/.gnome", 0700)
+			os.chown (self.user_home_dir + "/.gnome", self.uid, self.gid)
 		if os.path.exists(self.crontabdata) != True:
-			if os.makedirs(self.crontabdata, 0700):
-				pass
-			else:
-				pass
-				# FAILED TO CREATE DATADIR
+			try:
+				os.makedirs(self.crontabdata, 0700)
+				if self.root == 1:
+					os.chown (self.user_home_dir + "/.gnome/gnome-schedule", self.uid, self.gid)
+					os.chown (self.crontabdata, self.uid, self.gid)
+			except:
+				print _("Failed to create data dir! Make sure ~/.gnome and ~/.gnome/gnome-schedule are writable.")
 			
 		
 		
@@ -139,7 +144,17 @@
 		self.gid = gid
 		self.user_home_dir = ud
 		self.crontabdata = self.user_home_dir + "/.gnome/gnome-schedule/crontab"
-
+		if os.path.exists (self.user_home_dir + "/.gnome") != True:
+			os.mkdir (self.user_home_dir + "/.gnome", 0700)
+			os.chown (self.user_home_dir + "/.gnome", self.uid, self.gid)
+		if os.path.exists(self.crontabdata) != True:
+			try:
+				os.makedirs(self.crontabdata, 0700)
+				if self.root == 1:
+					os.chown (self.user_home_dir + "/.gnome/gnome-schedule", self.uid, self.gid)
+					os.chown (self.crontabdata, self.uid, self.gid)
+			except:
+				print (_("Failed to create data dir: %s. Make sure ~/.gnome and ~/.gnome/gnome-schedule are writable.") % (self.crontabdata))
 
 	def get_type (self):
 		return "crontab"
@@ -246,14 +261,15 @@
 				fh.truncate (1)
 				fh.write ( str(job_id))
 				fh.close ()
-				
-				
 			else:
 				job_id = 1
 				fh = open (f, 'w')
 				fh.write ('1')
 				fh.close ()
-				
+
+			os.chown (f, self.uid, self.gid)
+			os.chmod (f, 0600)					
+			
 			record = record + " # JOB_ID_" + str (job_id)
 			
 			
@@ -273,7 +289,9 @@
 		else:
 			fh.write ("nooutput=0\n")
 		fh.close ()	
-
+		os.chown (f, self.uid, self.gid)
+		os.chmod (f, 0600)
+		
 		self.lines[linenumber] = record
 		
 		# TODO: let write trow an exception if failed
@@ -335,14 +353,15 @@
 			fh.seek (0)
 			fh.truncate (1)
 			fh.write ( str(job_id))
-			fh.close ()
-			
-				
+			fh.close ()	
 		else:
 			job_id = 1
 			fh = open (f, 'w')
 			fh.write ('1')
 			fh.close ()
+			
+		os.chown (f, self.uid, self.gid)
+		os.chmod (f, 0600)
 		
 		f = os.path.join (self.crontabdata, str(job_id))
 			
@@ -358,6 +377,8 @@
 			fh.write ("nooutput=0\n")
 		
 		fh.close ()
+		os.chown (f, self.uid, self.gid)
+		os.chmod (f, 0600)
 				
 		record = record + " # JOB_ID_" + str (job_id)
 			



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]