Blob
1 #include <u.h>2 #include <libc.h>3 #include <fcall.h>4 #include <thread.h>5 #include <9p.h>7 /*8 * simplistic permission checking. assume that9 * each user is the leader of her own group.10 */11 int12 hasperm(File *f, char *uid, int p)13 {14 int m;16 m = f->dir.mode & 7; /* other */17 if((p & m) == p)18 return 1;20 if(strcmp(f->dir.uid, uid) == 0) {21 m |= (f->dir.mode>>6) & 7;22 if((p & m) == p)23 return 1;24 }26 if(strcmp(f->dir.gid, uid) == 0) {27 m |= (f->dir.mode>>3) & 7;28 if((p & m) == p)29 return 1;30 }32 return 0;33 }