public static bool AllowApplications(this IPrincipal user, ClimbingContext db, long compID) { if (!user.Identity.IsAuthenticated) { return(false); } if (user.IsInRoleComp(db, RoleEnum.Admin, compID)) { return(true); } if (user.IsInRoleComp(db, RoleEnum.User, compID, false)) { return(true); } var comp = db.Competitions.Find(compID); if (comp == null) { return(false); } var dbUser = user.GetDbUser(db, false); if (dbUser == null) { return(false); } if (dbUser.RegionId == null) { return(false); } return((dbUser.Region.IidParent ?? 0) == (comp.Region.IidParent ?? 0)); }
public static IEnumerable <RegionModel> AdminRegions(this IPrincipal user, ClimbingContext db) { if (!user.Identity.IsAuthenticated) { return(new RegionModel[0]); } return(user.GetDbUser(db).AdminRegions()); }
//private static ClimbingContext db = new ClimbingContext(); private static bool IsInRole(IPrincipal user, ClimbingContext db, Func <UserRoleModel, bool> roleSelector) { if (!user.Identity.IsAuthenticated) { return(false); } return(IsInRole(user.GetDbUser(db, false), roleSelector)); }
public static bool AllowRegistration(this IPrincipal user, ClimbingContext db) { if (!user.Identity.IsAuthenticated) { return(false); } var dbUser = user.GetDbUser(db, false); if (dbUser == null) { return(false); } return(dbUser.Roles.Where(r => r.CompID == null).Count(r => r.RoleId >= (int)RoleEnum.Admin) > 0); }