Small tweaks
Lots of new code imported.
This commit is contained in:
parent
a770daa795
commit
2277c5d7bb
86 changed files with 12444 additions and 91 deletions
34
src/lib9p/uid.c
Normal file
34
src/lib9p/uid.c
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <auth.h>
|
||||
#include <fcall.h>
|
||||
#include <thread.h>
|
||||
#include <9p.h>
|
||||
|
||||
/*
|
||||
* simplistic permission checking. assume that
|
||||
* each user is the leader of her own group.
|
||||
*/
|
||||
int
|
||||
hasperm(File *f, char *uid, int p)
|
||||
{
|
||||
int m;
|
||||
|
||||
m = f->dir.mode & 7; /* other */
|
||||
if((p & m) == p)
|
||||
return 1;
|
||||
|
||||
if(strcmp(f->dir.uid, uid) == 0) {
|
||||
m |= (f->dir.mode>>6) & 7;
|
||||
if((p & m) == p)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(strcmp(f->dir.gid, uid) == 0) {
|
||||
m |= (f->dir.mode>>3) & 7;
|
||||
if((p & m) == p)
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue