Example #1
0
        public static Organization GetDefault(Session session, OrganizationEnum code)
        {
            Organization ret = null;

            try
            {
                ret = session.FindObject <Organization>(
                    new BinaryOperator("Code", Enum.GetName(typeof(OrganizationEnum), code)));
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #2
0
        public static string ToAttribute(this OrganizationEnum value)
        {
            switch (value)
            {
            case OrganizationEnum.TITLE:
                return("title");

            case OrganizationEnum.DEPARTMENT:
                return("department");

            case OrganizationEnum.COMPANY:
                return("company");

            case OrganizationEnum.MANAGER:
                return("manager");

            default:
                throw new ArgumentException($"Invalid Enum:{value.ToString()}");
            }
        }
Example #3
0
        public Organization CreateOrFindOrganization(OrganizationEnum orgEnum)
        {
            var org = database.Organizations.SingleOrDefault(r => r.OrganizationEnum == orgEnum);

            if (org == null)
            {
                lock (orgLocker)
                {
                    org = database.Organizations.SingleOrDefault(r => r.OrganizationEnum == orgEnum);
                    if (org == null)
                    {
                        var newOrg = new Organization
                        {
                            Name             = orgEnum.ToString(),
                            OrganizationEnum = orgEnum
                        };
                        database.Organizations.Add(newOrg);
                        Save();
                        org = database.Organizations.SingleOrDefault(r => r.OrganizationEnum == orgEnum);
                    }
                }
            }
            return(org);
        }
Example #4
0
        public OrganizationEnum Matching(string str)
        {
            OrganizationEnum org = new OrganizationEnum();

            if (OrganizationEnum.中国语言文学学院.ToString() == str)
            {
                org = OrganizationEnum.中国语言文学学院;
            }
            if (OrganizationEnum.SEA团队.ToString() == str)
            {
                org = OrganizationEnum.SEA团队;
            }
            if (OrganizationEnum.TestOnly.ToString() == str)
            {
                org = OrganizationEnum.TestOnly;
            }
            if (OrganizationEnum.保险学院.ToString() == str)
            {
                org = OrganizationEnum.保险学院;
            }
            if (OrganizationEnum.信息学院.ToString() == str)
            {
                org = OrganizationEnum.信息学院;
            }
            if (OrganizationEnum.公共管理学院.ToString() == str)
            {
                org = OrganizationEnum.公共管理学院;
            }
            if (OrganizationEnum.国际商学院.ToString() == str)
            {
                org = OrganizationEnum.国际商学院;
            }
            if (OrganizationEnum.国际经济贸易学院.ToString() == str)
            {
                org = OrganizationEnum.国际经济贸易学院;
            }
            if (OrganizationEnum.校志愿服务中心.ToString() == str)
            {
                org = OrganizationEnum.校志愿服务中心;
            }
            if (OrganizationEnum.法学院.ToString() == str)
            {
                org = OrganizationEnum.法学院;
            }
            if (OrganizationEnum.统计学院.ToString() == str)
            {
                org = OrganizationEnum.统计学院;
            }
            if (OrganizationEnum.金融学院.ToString() == str)
            {
                org = OrganizationEnum.金融学院;
            }
            if (OrganizationEnum.国际关系学院.ToString() == str)
            {
                org = OrganizationEnum.国际关系学院;
            }
            if (OrganizationEnum.英语学院.ToString() == str)
            {
                org = OrganizationEnum.英语学院;
            }
            if (OrganizationEnum.外语学院.ToString() == str)
            {
                org = OrganizationEnum.外语学院;
            }
            return(org);
        }
Example #5
0
        public IdentityResult CreateUser(AppUser user, string password, AppRoleEnum roleEnum = AppRoleEnum.OrgnizationMember, OrganizationEnum orgEnum = OrganizationEnum.TestOnly)
        {
            lock (database)
            {
                if (database.Users.Where(u => u.AccountName == user.AccountName) != null && database.Users.Where(u => u.AccountName == user.AccountName).Count() != 0)
                {
                    return(IdentityResult.Error("该用户名已被使用。"));
                }
                if (database.Users.Where(u => u.StudentNum == user.StudentNum) != null && database.Users.Where(u => u.StudentNum == user.StudentNum).Count() != 0)
                {
                    return(IdentityResult.Error("该学号已被注册。"));
                }
                var org = CreateOrFindOrganization(orgEnum);
                user.Salt           = SecurityHelper.GetSalt();
                user.HashedPassword = SecurityHelper.Hash(password, user.Salt);
                user.Organization   = org;
                database.Users.Add(user);
                Save();
                AddToRole(user.Id, roleEnum);
            }

            return(IdentityResult.Success());
        }
Example #6
0
        public async Task <IdentityResult> CreateUserAsync(AppUser user, string password, AppRoleEnum roleEnum, OrganizationEnum orgEnum)
        {
            var result = Task.Run(() => CreateUser(user: user, password: password, roleEnum: roleEnum, orgEnum: orgEnum));

            return(await result);
        }
        private void register_button_Click(object sender, RoutedEventArgs e)
        {
            int studentnum;

            if (!int.TryParse(studentid.Text, out studentnum))
            {
                ModernDialog.ShowMessage("学号输入非法", "警告", MessageBoxButton.OK);
            }
            else
            if (studentnum < 201300000 || studentnum > 205000000)
            {
                ModernDialog.ShowMessage("学号大小非法", "警告", MessageBoxButton.OK);
            }
            else
            if (wholename.Text == "" || studentid.Text == "" || accountname.Text == "" || telephonenumber.Text == "" || emailadress.Text == "" || dormitaryadress.Text == "" || passwordBox.Password == "" || comboBox.Text == "")
            {
                ModernDialog.ShowMessage("信息输入不完整,请检查后重试.", "警告", MessageBoxButton.OK);
            }
            else
            {
                IdentityHelper ih = IdentityHelper.GetInstance();
                if (passwordBox.Password.Length <= 5)
                {
                    ModernDialog.ShowMessage("密码过短,长度至少为6位", "警告", MessageBoxButton.OK);
                }
                else
                if (telephonenumber.Text.Length != 11)
                {
                    ModernDialog.ShowMessage("电话长度应为11位", "警告", MessageBoxButton.OK);
                }
                else
                if (!emailadress.Text.Contains("@"))
                {
                    ModernDialog.ShowMessage("非法的邮箱格式,请检查", "警告", MessageBoxButton.OK);
                }
                else
                if (dormitaryadress.Text.Length > 10 || dormitaryadress.Text.Length < 3)
                {
                    ModernDialog.ShowMessage("非法的宿舍格式,请检查", "警告", MessageBoxButton.OK);
                }
                else
                if (passwordBox.Password == passwordBox1.Password)
                {
                    string           passWord = passwordBox.Password;
                    OrganizationEnum org      = ih.Matching(comboBox.Text);
                    //创建第一个用户
                    AppUserStatus status = AppUserStatus.NotApproved;
                    AppRoleEnum   role   = AppRoleEnum.OrgnizationMember;
                    if (isAdministrator)
                    {
                        status = AppUserStatus.Enabled;
                        role   = AppRoleEnum.OrgnizationAdministrator;
                    }
                    if (accountname.Text == "admin" && wholename.Text == "admin")
                    {
                        status = AppUserStatus.Enabled;
                        role   = AppRoleEnum.Administrator;
                    }
                    AppUser au = new AppUser()
                    {
                        StudentNum  = int.Parse(studentid.Text),
                        AccountName = accountname.Text,
                        Name        = wholename.Text,
                        Mobile      = telephonenumber.Text,
                        Email       = emailadress.Text,
                        Room        = dormitaryadress.Text,
                        Status      = status
                    };
                    IdentityResult result = ih.CreateUser(au, passWord, role, org);
                    if (result.Succeeded == true)
                    {
                        if (isAdministrator)
                        {
                            ModernDialog.ShowMessage("注册机构账号成功!账号所属机构:[" + comboBox.Text + "],机构账号用户名:[" + accountname.Text + "],密码:[" + passWord + "],请牢记账号密码!", "", MessageBoxButton.OK);
                        }
                        else
                        {
                            ModernDialog.ShowMessage("注册成功!已发送注册审批请求,请等待管理员审批.", "", MessageBoxButton.OK);
                            System.Windows.Forms.Application.Restart();
                            Application.Current.Shutdown();
                        }
                        this.Close();
                    }
                    else
                    {
                        ModernDialog.ShowMessage("注册失败,错误信息:" + string.Join(",", result.Errors), "", MessageBoxButton.OK);
                    }
                }
                else
                {
                    ModernDialog.ShowMessage("两次密码输入不一致", "", MessageBoxButton.OK);
                }
            }
        }
        internal static string getAttribute(this LdapEntry entry, OrganizationEnum value)
        {
            var attr = value.ToAttribute();

            return(entry.getAttribute(attr)?.ToString());
        }