コード例 #1
0
ファイル: AdUser.cs プロジェクト: WakeDown/TaskTracker
        public bool HasAccess(params AdGroup[] groups)
        {
            bool result = false;

            if (String.IsNullOrEmpty(Sid))
            {
                return(false);
            }
            if (AdHelper.UserInGroup(Sid, AdGroup.TaskTrackerAdmin))
            {
                return(true);
            }
            result = AdHelper.UserInGroup(Sid, groups);
            return(result);
        }
コード例 #2
0
ファイル: AdUser.cs プロジェクト: WakeDown/TaskTracker
        public bool Is(params AdGroup[] groups)
        {
            bool result = false;

            if (String.IsNullOrEmpty(Sid))
            {
                return(false);
            }
            result = AdHelper.UserInGroup(Sid, groups);
            //foreach (AdGroup group in groups)
            //{
            //    result = AdGroups.Contains(group);
            //    if (result) break;
            //}
            return(result);
        }
コード例 #3
0
        public AdUser GetCurUser()
        {
            AdUser user = new AdUser();

            try
            {
                using (WindowsImpersonationContextFacade impersonationContext
                           = new WindowsImpersonationContextFacade(
                                 AdHelper.GetAdUserCredentials()))
                {
                    var wi = (WindowsIdentity)base.User.Identity;
                    if (wi.User != null)
                    {
                        var    domain = new PrincipalContext(ContextType.Domain);
                        string sid    = wi.User.Value;
                        user.Sid = sid;
                        var login = wi.Name.Remove(0, wi.Name.IndexOf("\\", StringComparison.CurrentCulture) + 1);
                        user.Login = login;
                        var userPrincipal = UserPrincipal.FindByIdentity(domain, login);
                        if (userPrincipal != null)
                        {
                            var mail = userPrincipal.EmailAddress;
                            var name = userPrincipal.DisplayName;
                            user.Email    = mail;
                            user.FullName = name;
                            //user.AdGroups = new List<AdGroup>();
                            //var wp = new WindowsPrincipal(wi);
                            //foreach (var role in AdUserGroup.GetList())
                            //{
                            //    var grpSid = new SecurityIdentifier(role.Sid);
                            //    if (wp.IsInRole(grpSid))
                            //    {
                            //        user.AdGroups.Add(role.Group);
                            //    }
                            //}
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(user);
        }
コード例 #4
0
        protected override void Seed(TaskTrackerContext context)
        {
            base.Seed(context);

            var tCats = new List <TaskCategory>();

            tCats.Add(new TaskCategory(1, "Feature", 2, "FEATURE")
            {
                Selected = true
            });
            tCats.Add(new TaskCategory(2, "Bug", 1, "BUG"));
            tCats.ForEach(s => context.TaskCategories.Add(s));
            context.SaveChanges();

            var tImps = new List <TaskImportant>();

            tImps.Add(new TaskImportant("Важно", 1, "IMP"));
            tImps.Add(new TaskImportant("Не важно", 2, "NOTIMP"));
            tImps.ForEach(s => context.TaskImportants.Add(s));
            context.SaveChanges();

            var tQuicks = new List <TaskQuickly>();

            tQuicks.Add(new TaskQuickly("Срочно", 1, "QUICK"));
            tQuicks.Add(new TaskQuickly("Не срочно", 2, "NOTQUICK"));
            tQuicks.ForEach(s => context.TaskQuicklies.Add(s));
            context.SaveChanges();

            //var specCats = new List<SpecialistCategory>();
            //specCats.Add(new SpecialistCategory() { Name = "Менеджер", SpecialistCategorySysName = "MGR" });
            //specCats.Add(new SpecialistCategory() { Name = "Программист", SpecialistCategorySysName = "PROG" });
            //specCats.ForEach(s => context.SpecialistCategories.Add(s));
            //context.SaveChanges();

            var tStates = new List <TaskState>();

            tStates.Add(new TaskState("Создано", "NEW", "red lighten-2", 1));
            tStates.Add(new TaskState("Назначено", "SETED", "orange", 2));
            tStates.Add(new TaskState("В работе", "WORK", "orange", 3));
            tStates.Add(new TaskState("Приостановлено", "PAUSED", "blue", 4));
            tStates.Add(new TaskState("На проверке", "TEST", "amber", 5));
            tStates.Add(new TaskState("Доработка", "WORK2", "orange", 6));
            tStates.Add(new TaskState("Проверено", "DONE", "green", 7));
            tStates.ForEach(s => context.TaskStates.Add(s));
            context.SaveChanges();

            var specs = AdHelper.GetSpecialistListS(AdGroup.TaskTrackerProg).ToList();

            specs.AddRange(AdHelper.GetSpecialistListS(AdGroup.TaskTrackerManager));
            specs.GroupBy(x => x.SpecialistSid).Select(s => new Specialist {
                SpecialistSid = s.First().SpecialistSid, DisplayName = s.First().DisplayName, FullName = s.First().FullName
            }).ForEach(s => context.Specialists.Add(s));
            context.SaveChanges();

            var proj = new List <Project>();

            proj.Add(new Project("Сервис")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("Заявки на ЗИП")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("ДСУ планирование")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("СпецРасчет")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("Портал")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("TaskTracker")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("API")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("Эталон")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("1С")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.Add(new Project("UN1T счетчик")
            {
                ManagerSid = "S-1-5-21-1970802976-3466419101-4042325969-2365"
            });
            proj.ForEach(s => context.Projects.Add(s));
            context.SaveChanges();
        }