public ActionResult Settings() { Trace.Assert(Context.DistrictId.HasValue); Trace.Assert(Context.PersonId.HasValue); var messagingSettings = MessagingSettingsViewData.Create(MasterLocator.SchoolService.GetDistrictMessaginSettings(Context.DistrictId.Value)); PrepareJsonData(messagingSettings, ViewConstants.MESSAGING_SETTINGS); var allApps = MasterLocator.ApplicationService.GetApplications(live: true) .Where(x => x.HasDistrictAdminSettings) .Select(BaseApplicationViewData.Create) .ToList(); if (ApplicationSecurity.HasAssessmentEnabled(Context) && Context.Claims.HasPermission(ClaimInfo.ASSESSMENT_ADMIN)) { var assessement = MasterLocator.ApplicationService.GetAssessmentApplication(); if (assessement != null && assessement.HasDistrictAdminSettings && !allApps.Exists(x => x.Id == assessement.Id)) { allApps.Add(BaseApplicationViewData.Create(assessement)); } } else { var assessmentId = SchoolLocator.ServiceLocatorMaster.ApplicationService.GetAssessmentId(); allApps = allApps.Where(x => x.Id != assessmentId).ToList(); } return(Json(DistrictAdminSettingsViewData.Create(messagingSettings, allApps))); }
public AnnouncementApplication AddToAnnouncement(int announcementId, AnnouncementTypeEnum type, Guid applicationId) { var app = ServiceLocator.ServiceLocatorMaster.ApplicationService.GetApplicationById(applicationId); EnsureApplicationPermission(app.Id); using (var uow = Update()) { var ann = ServiceLocator.GetAnnouncementService(type).GetAnnouncementDetails(announcementId); if (!ApplicationSecurity.CanAddToAnnouncement(app, ann, Context)) { throw new ChalkableSecurityException(); } var aa = new AnnouncementApplication { AnnouncementRef = announcementId, ApplicationRef = applicationId, Active = false, Order = ServiceLocator.GetAnnouncementService(type).GetNewAnnouncementItemOrder(ann) }; var da = new AnnouncementApplicationDataAccess(uow); da.Insert(aa); uow.Commit(); aa = da.GetAll(new AndQueryCondition { { nameof(AnnouncementApplication.AnnouncementRef), announcementId }, { nameof(AnnouncementApplication.ApplicationRef), applicationId }, { nameof(AnnouncementApplication.Active), false } }).OrderByDescending(x => x.Id).First(); return(aa); } }
public ActionResult UserLogin(string username, string password) { SiteUser = null; try { password = ApplicationSecurity.Encrypt(password); User u = db.Users.Where(b => b.UserName == username && b.Password == password && b.IsActive == true).FirstOrDefault(); if (u != null) { SiteUser = u; UserPermissions = db.GetUserPermissions(u.Id).ToList(); if (u.UserTypeId == 1) // 1 For Regular User; 2 For Admin; 3 For Super Admin { return(RedirectToAction("Index", "UserDashboard")); } else { return(RedirectToAction("Index", "AdminDashboard")); } } } catch (Exception ex) { ApplicationExceptionLogging(ex.ToString(), ex.StackTrace, "AuthenticationController", "UserLogin"); } return(RedirectToAction("Login")); }
public override void DeletePicture(Guid id, int?width, int?height) { if (!ApplicationSecurity.CanUploadApplication(Context)) { throw new ChalkableSecurityException(); } base.DeletePicture(id, height, width); }
private Guid?InternalGetAssessmentId() { var key = ApplicationSecurity.HasAssessmentEnabled(Context) ? Preference.ASSESSMENT_APLICATION_ID : null; Guid res; return(key != null ? (Guid.TryParse(PreferenceService.Get(key).Value, out res) ? res : (Guid?)null) : null); }
public override void UploadPicture(Guid id, byte[] content, int?width, int?height) { if (!ApplicationSecurity.CanUploadApplication(Context)) { throw new ChalkableSecurityException(); } if (content != null) { base.UploadPicture(id, content, height, width); } }
//TODO: maybe move this to ApplicationService and make it public private void EnsureApplicationPermission(Guid appId) { if (appId == ServiceLocator.ServiceLocatorMaster.ApplicationService.GetAssessmentId()) { if (!ApplicationSecurity.HasAssessmentEnabled(Context) && !ApplicationSecurity.HasStudyCenterAccess(Context)) { throw new ChalkableSecurityException("Current user has disabled assessment access"); } } else if (!ApplicationSecurity.HasStudyCenterAccess(Context)) { throw new StudyCenterDisabledException(); } }
protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext == null) { throw new ArgumentNullException("httpContext"); } if (!ApplicationSecurity.IsLoggedIn) { return(false); } return(ApplicationSecurity.HasClaim(_claimType, _claimValue)); }
public ActionResult AttachSettings(int announcementId, int?announcementType) { Trace.Assert(Context.PersonId.HasValue); var assesmentId = (!ApplicationSecurity.HasStudyCenterAccess(Context) && !ApplicationSecurity.HasAssessmentEnabled(Context)) ? null : MasterLocator.ApplicationService.GetAssessmentId(); var type = (AnnouncementTypeEnum?)announcementType ?? AnnouncementTypeEnum.Class; var canAddStandard = SchoolLocator.GetAnnouncementService(type).CanAddStandard(announcementId); var isAppEnabled = BaseSecurity.IsDistrictOrTeacher(Context) && Context.SCEnabled; var isFileCabinetEnabled = Context.Role == CoreRoles.TEACHER_ROLE; //only teacher can use file cabinet for now var apps = MasterLocator.ApplicationService.GetApplications(live: true).ToList(); apps = apps.Where(app => MasterLocator.ApplicationService.HasExternalAttachMode(app)).ToList(); return(Json(AttachSettingsViewData.Create(assesmentId, canAddStandard, isAppEnabled, isFileCabinetEnabled, apps))); }
private PaginatedList <Application> GetApplications(ApplicationQuery query) { using (var uow = Read()) { query.Role = Context.Role.Id; if (!BaseSecurity.IsSysAdmin(Context)) { query.SchoolId = Context.SchoolId; query.DeveloperId = Context.DeveloperId; if (!ApplicationSecurity.HasAccessToBannedApps(Context)) { query.Ban = false; } } return(new ApplicationDataAccess(uow).GetPaginatedApplications(query)); } }
public bool UnList(Guid applicationId) { Application application; using (var uow = Read()) { var da = new ApplicationDataAccess(uow); application = da.GetApplicationById(applicationId); } if (!ApplicationSecurity.CanEditApplication(Context, application)) { throw new ChalkableSecurityException(ChlkResources.ERR_APP_INVALID_RIGHTS); } if (application.State == ApplicationStateEnum.Live) { DeleteApplication(application.Id); return(true); } return(false); }
public bool GoLive(Guid applicationId) { Application application; using (var uow = Update()) { var da = new ApplicationDataAccess(uow); application = da.GetApplicationById(applicationId); if (!ApplicationSecurity.CanEditApplication(Context, application)) { throw new ChalkableSecurityException(ChlkResources.ERR_APP_INVALID_RIGHTS); } if (application.State == ApplicationStateEnum.Approved) { var appInfo = BaseApplicationInfo.Create(application); Application orignApplication; if (application.OriginalRef.HasValue) { orignApplication = da.GetApplicationById(application.OriginalRef.Value); } else { orignApplication = new Application { SecretKey = application.SecretKey, Id = Guid.Empty }; application.CreateDateTime = DateTime.UtcNow; } orignApplication = EditApplication(orignApplication, appInfo, true, ApplicationStateEnum.Live); application.State = ApplicationStateEnum.Draft; if (!application.OriginalRef.HasValue) { application.OriginalRef = orignApplication.Id; } da.Update(application); uow.Commit(); return(true); } } return(false); }
public AnnouncementApplication AddToAnnouncement(int announcementId, AnnouncementTypeEnum announcementType, Guid applicationId) { var app = ServiceLocator.ServiceLocatorMaster.ApplicationService.GetApplicationById(applicationId); var ann = ServiceLocator.GetAnnouncementService(announcementType).GetAnnouncementDetails(announcementId); if (!ApplicationSecurity.CanAddToAnnouncement(app, ann, Context)) { throw new ChalkableSecurityException(); } var aa = new AnnouncementApplication { AnnouncementRef = announcementId, ApplicationRef = applicationId, Active = false, Order = ServiceLocator.GetAnnouncementService(announcementType).GetNewAnnouncementItemOrder(ann) }; AnnouncementApplicationStorage.Add(aa); aa = AnnouncementApplicationStorage.GetAll(announcementId, applicationId, false).OrderByDescending(x => x.Id).First(); return(aa); }
public ActionResult Edit(Guid UID) { string status = "error"; try { //if (UserHavePermission("FabricManagement")) //{ User obj = db.Users.FirstOrDefault(x => x.UID == UID); obj.Password = ApplicationSecurity.Decrypt(obj.Password); status = JsonConvert.SerializeObject(obj); //} } catch (Exception ex) { ApplicationExceptionLogging(ex.ToString(), ex.StackTrace, "UserManagementController", "Edit"); } return(Content(status)); }
public bool DeleteApplication(Guid id) { Application application; IList <Application> draftApps; using (var uow = Update()) { var da = new ApplicationDataAccess(uow); application = da.GetApplicationById(id); if (!ApplicationSecurity.CanEditApplication(Context, application)) { throw new ChalkableSecurityException(ChlkResources.ERR_APP_INVALID_RIGHTS); } if (application.OriginalRef.HasValue) { var orginalAppId = application.OriginalRef.Value; application.OriginalRef = null; da.Update(application); da.Delete(orginalAppId); } else { draftApps = da.GetAll(new AndQueryCondition { { nameof(Application.OriginalRef), id } }); foreach (var draftApp in draftApps) { draftApp.OriginalRef = null; da.Update(draftApp); } } da.Delete(id); uow.Commit(); } return(true); }
private void MenuItem_Click(object sender, RoutedEventArgs e) { MenuItem item = (MenuItem)e.OriginalSource; //if no node is defined then force user to add node. if (UserControlSelectNode.ComboboxNode.Items.Count == 0) { NodesUserControl nodesUserControl = new NodesUserControl(); ContentFrame.Navigate(nodesUserControl); } else if (item.Name == "CustomInputs") { AdapterUserControl adapter = new AdapterUserControl(); adapter.TypeOfAdapter = AdapterType.Input; ContentFrame.Navigate(adapter); } else if (item.Name == "CustomActions") { AdapterUserControl adapter = new AdapterUserControl(); adapter.TypeOfAdapter = AdapterType.Action; ContentFrame.Navigate(adapter); } else if (item.Name == "CustomOutputs") { AdapterUserControl adapter = new AdapterUserControl(); adapter.TypeOfAdapter = AdapterType.Output; ContentFrame.Navigate(adapter); } else if (item.Name == "CalculatedMeasurements") { CalculatedMeasurementsUserControl calculatedMeasurementsUserControl = new CalculatedMeasurementsUserControl(); ContentFrame.Navigate(calculatedMeasurementsUserControl); } else if (item.Name == "Historians") { HistoriansUserControl historiansUserControl = new HistoriansUserControl(); ContentFrame.Navigate(historiansUserControl); } else if (item.Name == "Nodes") { NodesUserControl nodesUserControl = new NodesUserControl(); ContentFrame.Navigate(nodesUserControl); } else if (item.Name == "Companies") { CompaniesUserControl companiesUserControl = new CompaniesUserControl(); ContentFrame.Navigate(companiesUserControl); } else if (item.Name == "Vendors") { VendorUserControl vendorUserControl = new VendorUserControl(); ContentFrame.Navigate(vendorUserControl); } else if (item.Name == "VendorDevices") { VendorDevicesUserControl vendorDevicesUserControl = new VendorDevicesUserControl(); ContentFrame.Navigate(vendorDevicesUserControl); } else if (item.Name == "AddOtherDevice") { ManageOtherDevicesUserControl manageOtherDeviceUserControl = new ManageOtherDevicesUserControl(); ContentFrame.Navigate(manageOtherDeviceUserControl); } else if (item.Name == "OtherDevices") { OtherDevicesUserControl otherDevicesUserControl = new OtherDevicesUserControl(); ContentFrame.Navigate(otherDevicesUserControl); } else if (item.Name == "AddNew") { ManageDevicesUserControl manageDevicesUserControl = new ManageDevicesUserControl(); ContentFrame.Navigate(manageDevicesUserControl); } else if (item.Name == "BrowseDevices") { BrowseDevicesUserControl browse = new openPDCManager.Pages.Devices.BrowseDevicesUserControl(); ContentFrame.Navigate(browse); } else if (item.Name == "Measurements") { Measurements measurements = new Measurements(0); ContentFrame.Navigate(measurements); } else if (item.Name == "Home") { HomePageUserControl home = new HomePageUserControl(); ContentFrame.Navigate(home); } else if (item.Name == "IaonTree") { IaonTreeUserControl iaonTree = new IaonTreeUserControl(); ContentFrame.Navigate(iaonTree); } else if (item.Name == "RealTimeMeasurements") { DeviceMeasurementsUserControl deviceMeasurements = new DeviceMeasurementsUserControl(); ContentFrame.Navigate(deviceMeasurements); } else if (item.Name == "RealTimeStatistics") { RealTimeStatisticsUserControl realTimeStatistics = new RealTimeStatisticsUserControl(); ContentFrame.Navigate(realTimeStatistics); } else if (item.Name == "RemoteConsole") { MonitorUserControl monitorControl = new MonitorUserControl(); ContentFrame.Navigate(monitorControl); } else if (item.Name == "OutputStreams") { OutputStreamsUserControl outputStreams = new OutputStreamsUserControl(); ContentFrame.Navigate(outputStreams); } else if (item.Name == "InputMonitor") { //SubscriptionTest inputMonitor = new SubscriptionTest(); InputStatusUserControl inputMonitor = new InputStatusUserControl(); //InputMonitoringUserControl inputMonitor = new InputMonitoringUserControl(); ContentFrame.Navigate(inputMonitor); } else if (item.Name == "ConfigurationWizard") { InputWizardUserControl wizardControl = new InputWizardUserControl(); ContentFrame.Navigate(wizardControl); } else if (item.Name == "Settings") { SystemSettings systemSettings = new SystemSettings(); ContentFrame.Navigate(systemSettings); } else if (item.Name == "Security") { ApplicationSecurity security = new ApplicationSecurity(); ContentFrame.Navigate(security); } else if (item.Name == "Help") { try { // Check for internet connectivity. Dns.GetHostEntry("openpdc.codeplex.com"); // Launch the help page available on web. Process.Start("http://openpdc.codeplex.com/wikipage?title=Manager%20Configuration"); } catch { // Launch the offline copy of the help page. Process.Start("openPDCManagerHelp.mht"); } } }
public UserAuthenticationDomain() { ApplicationSecurity = new ApplicationSecurity(new TokenIssuer()); }
private Application EditApplication(Application application, BaseApplicationInfo applicationInfo, bool addToOauth = false, ApplicationStateEnum state = ApplicationStateEnum.Draft) { if (application.DeveloperRef == Guid.Empty) { application.DeveloperRef = applicationInfo.DeveloperId; } if (!ApplicationSecurity.CanUploadApplication(Context) || !ApplicationSecurity.CanEditApplication(Context, application)) { throw new ChalkableSecurityException(ChlkResources.ERR_APP_INVALID_RIGHTS); } if (applicationInfo.ApplicationPrices.Price < 0 || applicationInfo.ApplicationPrices.PricePerClass < 0 || applicationInfo.ApplicationPrices.PricePerSchool < 0) { throw new ChalkableException(ChlkResources.ERR_APP_INVALID_PRICE); } var newAppName = applicationInfo.ShortApplicationInfo.Name; var newAppUrl = applicationInfo.ShortApplicationInfo.Url ?? ""; if (state != ApplicationStateEnum.Live) { if (Exists(application.Id, newAppName, null)) { throw new ChalkableException(ChlkResources.ERR_APP_DUPLICATE_NAME); } if (addToOauth && Exists(application.Id, null, newAppUrl)) { throw new ChalkableException(ChlkResources.ERR_APP_DUPLICATE_URL); } } application.Name = newAppName; application.Url = newAppUrl; application.ShortDescription = applicationInfo.ShortApplicationInfo.ShortDescription; application.Description = applicationInfo.ShortApplicationInfo.Description; application.SmallPictureRef = applicationInfo.ShortApplicationInfo.SmallPictureId; application.BigPictureRef = applicationInfo.ShortApplicationInfo.BigPictureId; application.ExternalAttachPictureRef = applicationInfo.ShortApplicationInfo.ExternalAttachPictureId; application.Description = applicationInfo.ShortApplicationInfo.Description; application.VideoUrl = applicationInfo.ShortApplicationInfo.VideoDemoUrl; application.IsAdvanced = applicationInfo.ShortApplicationInfo.AdvancedApp; application.Price = applicationInfo.ApplicationPrices.Price; application.PricePerClass = applicationInfo.ApplicationPrices.PricePerClass; application.PricePerSchool = applicationInfo.ApplicationPrices.PricePerSchool; application.HasStudentMyApps = applicationInfo.ApplicationAccessInfo.HasStudentMyApps; application.HasTeacherMyApps = applicationInfo.ApplicationAccessInfo.HasTeacherMyApps; application.HasParentMyApps = applicationInfo.ApplicationAccessInfo.HasParentMyApps; application.HasAdminMyApps = applicationInfo.ApplicationAccessInfo.HasAdminMyApps; application.CanAttach = applicationInfo.ApplicationAccessInfo.CanAttach; application.ShowInGradeView = applicationInfo.ApplicationAccessInfo.ShowInGradeView; application.HasAdminExternalAttach = applicationInfo.ApplicationAccessInfo.HasAdminExternalAttach; application.HasTeacherExternalAttach = applicationInfo.ApplicationAccessInfo.HasTeacherExternalAttach; application.HasStudentExternalAttach = applicationInfo.ApplicationAccessInfo.HasStudentExternalAttach; application.HasSysAdminSettings = applicationInfo.ApplicationAccessInfo.HasSysAdminSettings; application.HasDistrictAdminSettings = applicationInfo.ApplicationAccessInfo.HasDistrictAdminSettings; application.HasStudentProfile = applicationInfo.ApplicationAccessInfo.HasStudentProfile; application.ProvidesRecommendedContent = applicationInfo.ApplicationAccessInfo.ProvidesRecommendedContent; application.State = state; using (var uow = Update()) { var da = new ApplicationDataAccess(uow); if (application.Id == Guid.Empty) { application.Id = Guid.NewGuid(); application.CreateDateTime = DateTime.UtcNow; da.Insert(application); } else { da.Update(application); } application.Categories = da.UpdateCategories(application.Id, applicationInfo.Categories); application.Pictures = da.UpdatePictures(application.Id, applicationInfo.PicturesId); application.GradeLevels = da.UpdateGradeLevels(application.Id, applicationInfo.GradeLevels); application.Permissions = da.UpdatePermissions(application.Id, applicationInfo.PermissionIds); application.ApplicationStandards = da.UpdateApplicationStandards(application.Id, applicationInfo.StandardsIds); uow.Commit(); } application.Developer = ServiceLocator.DeveloperService.GetById(application.DeveloperRef); return(application); }
public ActionResult AddUser(User objUser) { string status = "error"; //if (Authenticated) //{ try { User obj = db.Users.Where(x => x.UserName == objUser.UserName).FirstOrDefault(); if (obj != null) { status = "exist"; } else { if (objUser.IsActive == null) { objUser.IsActive = false; } objUser.Password = ApplicationSecurity.Encrypt(objUser.Password); objUser.UID = Guid.NewGuid(); objUser.CreatedOn = DateTime.Now; objUser.CreatedBy = ActiveUserId; //objUser.UpdatedOn = DateTime.Now; //objUser.UpdatedBy = ActiveUserId; db.Users.Add(objUser); if (db.SaveChanges() > 0) { var str = (from u in db.Users join t in db.UserTypeLookups on u.UserTypeId equals t.Id where u.Id == objUser.Id select new UserGrid { UID = u.UID, Name = u.Name, UserName = u.UserName, Email = u.Email, ContactNo = u.ContactNo, UserType = t.Name, IsActive = u.IsActive }).ToList <UserGrid>(); status = Newtonsoft.Json.JsonConvert.SerializeObject(str); } } } catch (Exception ex) { ApplicationExceptionLogging(ex.ToString(), ex.StackTrace, "UserManagementController", "AddUser"); } //} return(Content(status)); }