Changeset 177 for trunk/web/templates/getafsgroups.py
- Timestamp:
- Oct 10, 2007, 1:56:37 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/web/templates/getafsgroups.py
r161 r177 29 29 checkAfsGroup(user, group) returns True if and only if user is in AFS group group in cell cell 30 30 """ 31 print user, group 32 p = subprocess.Popen(["pts", "membership", group, '-c', cell], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 33 p2 = subprocess.Popen(["grep", "-v", "^Members"], stdin=p.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 34 if p2.wait(): 31 p = subprocess.Popen(["pts", "membership", group, '-c', cell], 32 stdout=subprocess.PIPE, stderr=subprocess.PIPE) 33 if p.wait(): 35 34 return False 36 for member in p2.stdout.read().split():37 if member== user:35 for line in p.stdout.readlines()[1:]: 36 if line.strip() == user: 38 37 return True 39 38 return False 40 39 41 def checkLockerOwner(user, locker ):40 def checkLockerOwner(user, locker, verbose=False): 42 41 """ 43 42 checkLockerOwner(user, locker) returns True if and only if user administers locker 44 43 """ 45 p = subprocess.Popen(["fs", "whichcell", "/mit/" + locker], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 46 if (p.wait()): 44 p = subprocess.Popen(["fs", "whichcell", "/mit/" + locker], 45 stdout=subprocess.PIPE, stderr=subprocess.PIPE) 46 if p.wait(): 47 if verbose: 48 return p.stderr.read() 47 49 return False 48 50 cell = p.stdout.read().split()[-1][1:-1] 49 p = subprocess.Popen(["fs", "listacl", "/mit/" + locker], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 50 p2 = subprocess.Popen(["grep", "^ .* rlidwka$"], stdin=p.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 51 if (p2.wait()): 51 p = subprocess.Popen(["fs", "listacl", "/mit/" + locker], 52 stdout=subprocess.PIPE, stderr=subprocess.PIPE) 53 if p.wait(): 54 if verbose: 55 return p.stderr.read() 52 56 return False 53 for line in p 2.stdout.read().split('\n'):57 for line in p.stdout.readlines()[1:]: 54 58 entry = line.split() 55 if entry == []or entry[0] == "Negative":59 if not entry or entry[0] == "Negative": 56 60 break 57 61 if entry[1] == "rlidwka": 58 if entry[0] == user or (entry[0][0:6] == "system" and checkAfsGroup(user, entry[0], cell)): 62 if entry[0] == user or (entry[0][0:6] == "system" and 63 checkAfsGroup(user, entry[0], cell)): 59 64 return True 65 if verbose: 66 return "You don't have admin bits on /mit/" + locker 60 67 return False 61 68
Note: See TracChangeset
for help on using the changeset viewer.