Exemplo n.º 1
0
        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);
 }
Exemplo n.º 5
0
        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();
     }
 }
Exemplo n.º 8
0
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (httpContext == null)
        {
            throw new ArgumentNullException("httpContext");
        }

        if (!ApplicationSecurity.IsLoggedIn)
        {
            return(false);
        }

        return(ApplicationSecurity.HasClaim(_claimType, _claimValue));
    }
Exemplo n.º 9
0
        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)));
        }
Exemplo n.º 10
0
 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));
     }
 }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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());
 }
Exemplo n.º 18
0
        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));
        }