Exemple #1
0
        private static AppPermission GetAppToSave(AppPermissionRequest request)
        {
            var appToSave = new AppPermission();

            appToSave.AppName = request.AppName;
            request.Needs.ForEach(x => appToSave.Needs.Add(new Need()
            {
                Permission = x, Enabled = false
            }));
            appToSave.Token = request.Token;
            return(appToSave);
        }
Exemple #2
0
        public bool Register(AppPermissionRequest request)
        {
            var appCandidate = this.DatabaseService.GetAppPermission().FindOne((x) => x.AppName == request.AppName);

            if (appCandidate != null && appCandidate.Token != request.Token)
            {
                throw new Exception("Bad change request");
            }

            var appToSave = GetAppToSave(request);

            //an update request reset all permission (also the already given)
            this.DatabaseService.SavePermission(appToSave);

            if (!request.Async)
            {
                var msg = $"Allow app {appToSave.AppName} to access permission:";

                foreach (var item in appToSave.Needs)
                {
                    msg += " " + item.Permission;
                }

                if (MessageBox.Show(msg, "Permission request", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    foreach (var item in appToSave.Needs)
                    {
                        item.Enabled = true;
                    }
                    this.DatabaseService.SavePermission(appToSave);
                    return(true);
                }
            }
            this.MessageBusService.Emit("appchanged", null);

            return(false);
        }