public static Permission GetOrCreatePermission( string name ) { //log.Info("Getting permission",name); Permission p = GetPermission(name); if( p != null ) { // log.Info("Found permission",name); return p; } p = new Permission(); p.name = name; p.Save(); Role.Administrator.Permissions.Add( p ); //Role.Administrator.Save(); Role.Administrator.SaveRelations("Permissions"); log.Info("Added permission to Administrator",name,p,p.Id,p.Name); //InvalidateCache(p.GetType()); return p; }
public virtual bool CheckPermission(Permission p) { foreach (Role role in this.Roles) { if (role.Permissions.Contains(p)) { return true; } } return false; }