cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/site/luci/Extensions homebase_adapt ...
Date: 6 Jun 2007 15:14:12 -0000	[thread overview]
Message-ID: <20070606151412.9192.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	EXPERIMENTAL
Changes by:	rmccabe at sourceware.org	2007-06-06 15:14:12

Modified files:
	luci/site/luci/Extensions: homebase_adapters.py 

Log message:
	Fix bz241727 (can't set user permissions in luci)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/homebase_adapters.py.diff?cvsroot=cluster&only_with_tag=EXPERIMENTAL&r1=1.50.2.8&r2=1.50.2.9

--- conga/luci/site/luci/Extensions/homebase_adapters.py	2007/05/30 05:54:02	1.50.2.8
+++ conga/luci/site/luci/Extensions/homebase_adapters.py	2007/06/06 15:14:12	1.50.2.9
@@ -758,7 +758,7 @@
 	if not request.form.has_key('__CLUSTER'):
 		for i in clusters:
 			try:
-				if user.has_permission('View', i[1]):
+				if user.has_role('View', i[1]):
 					roles = list(i[1].get_local_roles_for_userid(user_id))
 					roles.remove('View')
 
@@ -776,7 +776,7 @@
 		for i in clusters:
 			if i[0] in request.form['__CLUSTER']:
 				try:
-					if not user.has_permission('View', i[1]):
+					if not user.has_role('View', i[1]):
 						roles = list(i[1].get_local_roles_for_userid(user_id))
 						roles.append('View')
 						i[1].manage_setLocalRoles(user_id, roles)
@@ -788,7 +788,7 @@
 					errors.append('Failed to add permission for user "%s" for cluster "%s"' % (user_id, i[0]))
 			else:
 				try:
-					if user.has_permission('View', i[1]):
+					if user.has_role('View', i[1]):
 						roles = list(i[1].get_local_roles_for_userid(user_id))
 						roles.remove('View')
 
@@ -809,7 +809,7 @@
 	if not request.form.has_key('__SYSTEM'):
 		for i in storage:
 			try:
-				if user.has_permission('View', i[1]):
+				if user.has_role('View', i[1]):
 					roles = list(i[1].get_local_roles_for_userid(user_id))
 					roles.remove('View')
 
@@ -824,7 +824,7 @@
 		for i in storage:
 			if i[0] in request.form['__SYSTEM']:
 				try:
-					if not user.has_permission('View', i[1]):
+					if not user.has_role('View', i[1]):
 						roles = list(i[1].get_local_roles_for_userid(user_id))
 						roles.append('View')
 						i[1].manage_setLocalRoles(user_id, roles)
@@ -833,7 +833,7 @@
 					errors.append('Failed to add permission for user "%s" for system "%s"' % (user_id, i[0]))
 			else:
 				try:
-					if user.has_permission('View', i[1]):
+					if user.has_role('View', i[1]):
 						roles = list(i[1].get_local_roles_for_userid(user_id))
 						roles.remove('View')
 
@@ -998,12 +998,12 @@
 	except:
 		pass
 
-	if 'ACTUAL_URL' in request:
+	if request.has_key('ACTUAL_URL'):
 		url = request['ACTUAL_URL']
 	else:
 		url = '.'
 
-	if 'pagetype' in request:
+	if request.has_key('pagetype'):
 		pagetype = request['pagetype']
 	else:
 		pagetype = '0'
@@ -1016,110 +1016,105 @@
 	index = 0
 	cur = None
 
-	pagetype = str(pagetype)
+	if pagetype is None:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP0: pagetype is None')
 
-#
-# The Add System page
-#
+	pagetype = str(pagetype)
 
+	# The Add System page
 	try:
 		if havePermAddStorage(self):
 			addSystem = {}
 			addSystem['Title'] = 'Add a System'
-			addSystem['absolute_url'] = '%s?pagetype=%s' % (url, HOMEBASE_ADD_SYSTEM)
+			addSystem['absolute_url'] = '%s?pagetype=%s' \
+				% (url, HOMEBASE_ADD_SYSTEM)
 			addSystem['Description'] = 'Add a system to the Luci storage management interface.'
+
 			if pagetype == HOMEBASE_ADD_SYSTEM:
-				cur = addSystem
 				addSystem['currentItem'] = True
 				ret['curIndex'] = index
-			else:
-				addSystem['currentItem'] = False
+				cur = addSystem
 			index += 1
 			temp.append(addSystem)
-	except: pass
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP1: %r %s' % (e, str(e)))
 
 	# Initial add cluster page
 	try:
 		if havePermAddCluster(self):
 			addCluster = {}
 			addCluster['Title'] = 'Add an Existing Cluster'
-			addCluster['absolute_url'] = '%s?pagetype=%s' % (url, HOMEBASE_ADD_CLUSTER_INITIAL)
+			addCluster['absolute_url'] = '%s?pagetype=%s' \
+				% (url, HOMEBASE_ADD_CLUSTER_INITIAL)
 			addCluster['Description'] = 'Add an existing cluster to the Luci cluster management interface.'
+
 			if pagetype == HOMEBASE_ADD_CLUSTER_INITIAL or pagetype == HOMEBASE_ADD_CLUSTER:
 				addCluster['currentItem'] = True
 				ret['curIndex'] = index
 				cur = addCluster
-			else:
-				addCluster['currentItem'] = False
 			index += 1
 			temp.append(addCluster)
-	except: pass
-
-#
-# The Remove Storage System page
-#
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP2: %r %s' % (e, str(e)))
 
+	# The Remove Storage System page
 	try:
 		if (havePermRemStorage(self) and havePermRemCluster(self) and (getStorage(self) or getClusters(self))):
 			remSystem = {}
 			remSystem['Title'] = 'Manage Systems'
-			remSystem['absolute_url'] = '%s?pagetype=%s' % (url, HOMEBASE_DEL_SYSTEM)
+			remSystem['absolute_url'] = '%s?pagetype=%s' \
+				% (url, HOMEBASE_DEL_SYSTEM)
 			remSystem['Description'] = 'Update or remove storage systems and clusters.'
 			if pagetype == HOMEBASE_DEL_SYSTEM:
 				remSystem['currentItem'] = True
 				ret['curIndex'] = index
 				cur = remSystem
-			else:
-				remSystem['currentItem'] = False
 			index += 1
 			temp.append(remSystem)
-	except:
-		pass
-
-#
-# Add a Luci user.
-#
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP3: %r %s' % (e, str(e)))
 
+	# Add a Luci user.
 	try:
 		if havePermAddUser(self):
 			addUser = {}
 			addUser['Title'] = 'Add a User'
-			addUser['absolute_url'] = '%s?pagetype=%s' % (url, HOMEBASE_ADD_USER)
+			addUser['absolute_url'] = '%s?pagetype=%s' \
+				% (url, HOMEBASE_ADD_USER)
 			addUser['Description'] = 'Add a user to the Luci interface.'
 			if pagetype == HOMEBASE_ADD_USER:
 				addUser['currentItem'] = True
 				ret['curIndex'] = index
 				cur = addUser
-			else:
-				addUser['currentItem'] = False
 			index += 1
 			temp.append(addUser)
-	except:
-		pass
-
-#
-# Delete a Luci user
-#
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP4: %r %s' % (e, str(e)))
 
+	# Delete a Luci user
 	try:
 		if (self.portal_membership.listMembers() and havePermDelUser(self)):
 			delUser = {}
 			delUser['Title'] = 'Delete a User'
-			delUser['absolute_url'] = '%s?pagetype=%s' % (url, HOMEBASE_DEL_USER)
+			delUser['absolute_url'] = '%s?pagetype=%s' \
+				% (url, HOMEBASE_DEL_USER)
 			delUser['Description'] = 'Delete a Luci user.'
 			if pagetype == HOMEBASE_DEL_USER:
 				delUser['currentItem'] = True
 				ret['curIndex'] = index
 				cur = delUser
-			else:
-				delUser['currentItem'] = False
 			index += 1
 			temp.append(delUser)
-	except: pass
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP5: %r %s' % (e, str(e)))
 
-#
-# The User Permissions Page
-#
+	# The User Permissions Page
 	try:
 		if (havePermEditPerms(self) and self.portal_membership.listMembers() and (getStorage(self) or getClusters(self))):
 			userPerm = {}
@@ -1130,35 +1125,34 @@
 				userPerm['currentItem'] = True
 				ret['curIndex'] = index
 				cur = userPerm
-			else:
-				userPerm['currentItem'] = False
 			index += 1
 			temp.append(userPerm)
-	except: pass
+	except Exception, e:
+		if LUCI_DEBUG_MODE is True:
+			luci_log.debug_verbose('HBP6: %r %s' % (e, str(e)))
 
-	if not 'curIndex' in ret:
+	if not ret.has_key('curIndex'):
 		ret['curIndex'] = 0
 
-	if cur and 'absolute_url' in cur and params:
-		import cgi
+	if cur is not None and cur.has_key('absolute_url'):
 		cur['base_url'] = cur['absolute_url']
-		param_list = list()
-		for i in params:
-			param_list.append('&%s=%s' % (cgi.escape(i), cgi.escape(params[i])))
-		temp = '%s%s' % (cur['absolute_url'], ''.join(param_list))
-		cur['absolute_url'] = temp
-	elif cur and 'absolute_url' in cur:
-		cur['base_url'] = cur['absolute_url']
-	else:
-		cur = {}
-		cur['base_url'] = '#'
+
+		if params:
+			import cgi
+			param_list = list()
+			for i in params:
+				param_list.append('&%s=%s' \
+					% (cgi.escape(i), cgi.escape(params[i])))
+			temp = '%s%s' % (cur['absolute_url'], ''.join(param_list))
+			cur['absolute_url'] = temp
 
 	ret['children'] = temp
 	return ret
 
 def createSystem(self, host, passwd):
 	try:
-		dummy = self.restrictedTraverse('%s%s' % (STORAGE_FOLDER_PATH, host)).objectItems()
+		dummy = self.restrictedTraverse('%s%s' \
+			% (STORAGE_FOLDER_PATH, host)).objectItems()
 		if LUCI_DEBUG_MODE is True:
 			luci_log.debug_verbose('CS0: %s already exists' % host)
 		return 'Storage system %s is already managed' % host
@@ -1171,7 +1165,7 @@
 			raise Exception, 'rc is None'
 	except Exception, e:
 		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('CS1: %s: %s' % (host, e))
+			luci_log.debug_verbose('CS2: %s: %r %s' % (host, e, str(e)))
 		return 'Unable to establish a secure connection to the ricci agent on %s: %s' % (host, str(e))
 
 	try:
@@ -1179,14 +1173,14 @@
 			rc.auth(passwd)
 	except Exception, e:
 		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('CS2: %s: %s' % (host, e))
+			luci_log.debug_verbose('CS3: %s: %r %s' % (host, e, str(e)))
 		return 'Unable to communicate with the ricci agent on %s for authentication' % host
 
 	try:
 		i = rc.authed()
 	except Exception, e:
 		if LUCI_DEBUG_MODE is True:
-			luci_log.debug_verbose('CS3 %s: %r %s' % (host, e, str(e)))
+			luci_log.debug_verbose('CS4 %s: %r %s' % (host, e, str(e)))
 		return 'Unable to authenticate to the ricci agent on %s' % host
 
 	if i is not True:
@@ -1233,10 +1227,9 @@
 			user = request['user']
 		except:
 			try:
-				members = list()
-				members.extend(self.portal_membership.listMembers())
+				members = map(lambda x: x.getUserName(), self.portal_membership.listMembers())
 				members.sort()
-				user = members[0].getUserName()
+				user = members[0]
 			except Exception, e:
 				if LUCI_DEBUG_MODE is True:
 					luci_log.debug_verbose('getDefaultUser0: %r %s' \
@@ -1280,14 +1273,14 @@
 
 		for c in clusters:
 			try:
-				perms[userName]['cluster'][c[0]] = i.has_permission('View', c[1])
+				perms[userName]['cluster'][c[0]] = i.has_role('View', c[1])
 			except Exception, e:
 				if LUCI_DEBUG_MODE is True:
 					luci_log.debug_verbose('getUserPerms2: user %s, obj %s: %r %s' % (userName, c[0], e, str(e)))
 
 		for s in storage:
 			try:
-				perms[userName]['storage'][s[0]] = i.has_permission('View', s[1])
+				perms[userName]['storage'][s[0]] = i.has_role('View', s[1])
 			except Exception, e:
 				if LUCI_DEBUG_MODE is True:
 					luci_log.debug_verbose('getUserPerms2: user %s, obj %s: %r %s' % (userName, s[0], e, str(e)))



             reply	other threads:[~2007-06-06 15:14 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-06 15:14 rmccabe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-04-21 18:19 [Cluster-devel] conga/luci/site/luci/Extensions homebase_adapt rmccabe
2008-02-05 20:59 rmccabe
2007-01-29 22:06 rmccabe
2007-01-08 19:49 rmccabe
2007-01-08 19:46 rmccabe
2006-11-02 21:12 rmccabe
2006-11-01 20:34 rmccabe
2006-10-30 20:20 rmccabe
2006-10-26 16:57 rmccabe
2006-10-16 15:18 rmccabe
2006-10-13 17:12 rmccabe
2006-10-11 21:48 rmccabe
2006-10-11 18:44 rmccabe
2006-10-06 20:45 rmccabe
2006-10-06 18:58 rmccabe
2006-10-04 13:25 jparsons
2006-08-01 16:27 rmccabe
2006-07-27 13:37 jparsons
2006-07-26 19:50 rmccabe
2006-07-25 17:45 rmccabe
2006-07-18 19:26 rmccabe
2006-06-27 20:53 rmccabe
2006-06-27 20:47 rmccabe
2006-06-27 17:49 rmccabe
2006-06-26 20:10 rmccabe
2006-06-22  3:58 rmccabe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070606151412.9192.qmail@sourceware.org \
    --to=rmccabe@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).